Eu criei uma aplicação android para reproduzir texto para arquivo de fala usando o media player, mas se outro áudio / vídeo começa a tocar, então também o meu áudio toca, ou seja, dois áudios são tocados simultaneamente.
Existe alguma maneira de parar o primeiro áudio antes de iniciar outro áudio / vídeo.
Existe algum receptor de radiodifusão que será chamado no início de outro áudio.
Eu tenho usado -
mediaPlayer.play()
para reproduzir áudio.
e mediaPlayer.pause()
para pausar o áudio.
Qualquer ajuda seria apreciada.
Respostas:
0 para resposta № 1O media player é responsável por jogar. O AudioManager fornecerá acesso ao controle do volume e do modo de campainha. Tente seguir o código para parar anterior e jogar em seguida:
if (mediaplayer != null)
if (mediaplayer.isplaying()) {
mediaplayer.stop();
// start your new audio
} else {
// start your new audio
}
0 para resposta № 2
Você deve usar o serviço AudioManager para receber notificações se você recebe / perdeu foco de áudio (Gerenciando o foco de áudio). Use o seguinte código onde você está controlando sua reprodução de mídia como (atividade ou serviço) -
// Add this code in a method
AudioManager am = null;
// Request focus for music stream and pass AudioManager.OnAudioFocusChangeListener
// implementation reference
int result = am.requestAudioFocus(this, AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
if(result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED)
{
// Play
}
// Implements AudioManager.OnAudioFocusChangeListener
@Override
public void onAudioFocusChange(int focusChange)
{
if(focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT)
{
// Pause
}
else if(focusChange == AudioManager.AUDIOFOCUS_GAIN)
{
// Resume
}
else if(focusChange == AudioManager.AUDIOFOCUS_LOSS)
{
// Stop or pause depending on your need
}
}