/ / Como parar o media player se outro vídeo / áudio começar a ser reproduzido no android - android, media-player, android-audiomanager

Como parar o media player se outro vídeo / áudio começar a ser reproduzido no android - android, media-player, android-audiomanager

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 № 1

O 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
}
}