【发布时间】:2015-03-26 13:50:02
【问题描述】:
在一个屏幕中,我有一个循环的背景视频(显示正常的 UI 元素),使用 VideoView 实现,如下所示:
String resPath = "android.resource://" + getPackageName() + "/" + R.raw.bg_video;
videoView.setVideoURI(Uri.parse(resPath));
// Hide controls:
MediaController controller = new MediaController(getActivity());
controller.setVisibility(View.GONE);
videoView.setMediaController(controller);
// Use looping:
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true);
}
});
videoView.start();
视频效果很好。唯一的问题是,当显示此视图时(或者甚至在使用 ViewPager 之前),其他应用程序的音乐播放停止。
我正在使用的视频本身没有声音。有没有办法将 VideoView 或它使用的 MediaPlayer 设置为“静音模式”?即,告诉它根本不要播放音频,尤其是不要弄乱其他应用的音频。
在onPrepared() 中尝试过mp.setVolume(0, 0);,但没有效果。
【问题讨论】:
-
我没有尝试过,但我相信您的答案将涉及通过
AudioManager并使用流的静音/独奏设置。因为它是您想要继续播放的来自其他应用程序的音乐,所以您需要在调用prepare()之前将您的MediaPlayer的音频流设置为不同的值。 -
@ab.helly:是的,有时间我会发布答案。
-
@Jonik,你能发布答案吗?
-
@Ana:实际上我最终的结果与Łukasz posted 基本相同。感觉很丑,从 Android 源复制粘贴
VideoView并注释掉requestAudioFocus调用。
标签: android audio android-mediaplayer android-videoview