Como pausar um áudio?

Java

24/04/2015

Criei a classe Audio( ) com métodos para reproduzir e parar o áudio.

Como implementar essa classe para pausar o áudio?

// Incluir na biblioteca o "jl1.0.1.jar" //

package audio;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;

public class Audio {
    
    private File file;
    private FileInputStream fis;
    private BufferedInputStream bis;
    private Player player;
    
    // Este método pede o endereço absoluto do arquivo a ser reproduzido
    public void reproduzir(String url){
        new Thread() {
            @Override
            public void run(){
                try{                
                    file = new File(url);
                    fis = new FileInputStream(file);
                    bis = new BufferedInputStream(fis);
                }catch(IOException e){}
                
                try{
                    player = new Player(bis);
                    player.play();
                }catch(JavaLayerException ex){}
            }
        }.start(); 
    }
    
    public void parar(){
        player.close();
    }
    
    public void pausar(){
        
    }  
}
Reinilton

Reinilton

Curtidas 0

Respostas

Ronaldo Lanhellas

Ronaldo Lanhellas

24/04/2015

Bom, primeiramente você precisa usar a classe AdvancedPlayer que lhe possibilita um controle maior das operações com o audio. Não há um método pausar, você deve colocar um listener quando usar o STOP e quando for realizar o play novamente então você começa do momento em que parou.

Veja;

private int pausedOnFrame = 0;

AdvancedPlayer player = new AdvancedPlayer(fis);
player.setPlayBackListener(new PlaybackListener() {
    @Override
    public void playbackFinished(PlaybackEvent event) {
        pausedOnFrame = event.getFrame();
    }
});
player.play(pausedOnFrame, Integer.MAX_VALUE);


Criamos um listener para o AdvancedPlayer e quando o evento playbackFinished() for chamado (assim que o play.close() é acionado) você guarda o momento em que foi parado, e retorna com o play apartir daquele frame.
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

24/04/2015

Bom, primeiramente você precisa usar a classe AdvancedPlayer que lhe possibilita um controle maior das operações com o audio. Não há um método pausar, você deve colocar um listener quando usar o STOP e quando for realizar o play novamente então você começa do momento em que parou.

Veja;

private int pausedOnFrame = 0;

AdvancedPlayer player = new AdvancedPlayer(fis);
player.setPlayBackListener(new PlaybackListener() {
    @Override
    public void playbackFinished(PlaybackEvent event) {
        pausedOnFrame = event.getFrame();
    }
});
player.play(pausedOnFrame, Integer.MAX_VALUE);


Criamos um listener para o AdvancedPlayer e quando o evento playbackFinished() for chamado (assim que o play.close() é acionado) você guarda o momento em que foi parado, e retorna com o play apartir daquele frame.
GOSTEI 0
POSTAR