3

当音频在后台播放时(在我的同一个应用程序中),我不得不将视频音量静音。但是当我尝试在 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 平板电脑,但不适用于某些安卓设备。

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

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

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

4

2 回答 2

2

我在调用 start 后立即使用了 setVolume(0,0),它对我来说静音了......

于 2013-05-30T15:39:38.083 回答
0

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

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

于 2017-05-08T11:03:55.900 回答