Android MediaPlayer.setVolume(0,0)不会使视频的声音静音

时间:2013-05-16 12:15:38

标签: android media-player android-videoview

当音频在后台播放时(我在同一个应用中),我不得不将视频音量静音。 但是当我尝试在videoview.onPrepared回调中设置媒体播放器的音量时,它对静音视频没有任何影响。

//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();
                }
            });

这适用于三星GT平板电脑,但它在某些Android设备上无效。

我无法在我的应用中设置流量,因为在我的应用本身中,我需要在后台播放完整音量的音频。

还有一些应用程序(Vplayer)能够在上述代码无效的同一设备中将视频静音

有没有其他方法可以设置视频的音量,使视频静音,而另一个音频在后台播放? 或者我错过了什么?

2 个答案:

答案 0 :(得分:1)

我在调用start之后立即使用了setVolume(0,0),它为我静音...

答案 1 :(得分:0)

此代码仅在音频已播放且videoView准备好时(因为您在VideoView的onPrepared侦听器中进行更改)才有效。但是,根据您的问题的语言,当您在后台调用音频时,您似乎正在尝试将已播放的视频静音(也就是说,反之亦然)。如果是这种情况,请创建一个将音量设置为零的方法,并在音频开始播放时调用该方法。

PS:既然你说它在三星GT平板电脑上工作,我觉得我的观察也可能不正确。你能否更清楚地说明要求何时产生?