【发布时间】:2011-07-21 04:43:20
【问题描述】:
您好,我是 android 开发和游戏开发的新手。我目前有一个打开的过场动画,它是一个视频视图,但如果用户从首选项菜单中选择静音音乐,我想静音。问题是我不知道如何在不完全关闭视频的情况下将视频视图中的音乐静音!
【问题讨论】:
标签: android video media-player preferences
您好,我是 android 开发和游戏开发的新手。我目前有一个打开的过场动画,它是一个视频视图,但如果用户从首选项菜单中选择静音音乐,我想静音。问题是我不知道如何在不完全关闭视频的情况下将视频视图中的音乐静音!
【问题讨论】:
标签: android video media-player preferences
AudioManager 始终不是一个好选择,因为您将所有系统静音...
如果你想访问 VideoView 的 MediaPlayer,你必须调用 MediaPlayer.OnPreparedListener 和 MediaPlayer.OnCompletionListener,然后你可以调用 setVolume(0f, 0f);将音量设置为 0 的函数。
这样做:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video);
VideoView videoView = (VideoView)this.findViewById(R.id.VVSimpleVideo);
MediaController mc = new MediaController(this);
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
videoView.setMediaController(mc);
String _path = "/mnt/sdcard/Movies/video5.mp4";
videoView.setVideoPath(_path);
videoView.setOnPreparedListener(PreparedListener);
videoView.requestFocus();
//Dont start your video here
//videoView.start();
}
MediaPlayer.OnPreparedListener PreparedListener = new MediaPlayer.OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer m) {
try {
if (m.isPlaying()) {
m.stop();
m.release();
m = new MediaPlayer();
}
m.setVolume(0f, 0f);
m.setLooping(false);
m.start();
} catch (Exception e) {
e.printStackTrace();
}
}
};
【讨论】:
您可以做的最好的事情是在过场动画开始时使用AudioManager 将音乐流静音,并在完成后取消静音:VideoView 不提供独立的静音控件。
【讨论】: