Eu tive que silenciar o volume do vídeo quando um áudioestá tocando em segundo plano (no meu mesmo aplicativo). Mas quando tento definir o volume do mediaplayer na videoview.onPrepared callback, isso não afeta o silenciamento do vídeo.
//muteVolume is a boolean that is true if a background audio is playing, otherwise false
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mediaPlayer)
{
float volumeValue = ((muteVolume) ? 0.f : 1.f);
mediaPlayer.setVolume(volumeValue,volumeValue);
videoView.setZOrderOnTop(false);
videoView.start();
}
});
Isso funciona no tablet Samsung GT, enquanto não funciona em alguns dispositivos Android.
Não consigo definir o volume do fluxo no meu aplicativo, porque no próprio aplicativo, preciso reproduzir um áudio em segundo plano com volume total.
Existem também alguns aplicativos (Vplayer) capazes de silenciar o vídeo no mesmo dispositivo em que o código acima não está funcionando
Existe outra maneira de definir o volume do vídeo, de modo que o vídeo fique mudo e outro áudio seja reproduzido em segundo plano? Ou eu estou esquecendo de alguma coisa?
Respostas:
1 para resposta № 1Eu usei setVolume (0,0) logo depois que eu chamei start e ele ficou mudo ...
0 para resposta № 2
Este código só funcionará se o áudio já estiverreproduzindo e o videoView é preparado (conforme você está fazendo a alteração no ouvinte onPrepared do VideoView). No entanto, no idioma da sua pergunta, parece que você está tentando silenciar um vídeo que já está sendo reproduzido quando um áudio é invocado em segundo plano (ou seja, o contrário). Se for esse o caso, crie um método para ajustar o volume para zero e chame o método quando o áudio começar a tocar.
PS: Como você está dizendo que está funcionando no Samsung GT Tablet, acho que minha observação pode não estar correta também. Você pode deixar a pergunta mais clara sobre quando o requisito está surgindo?