禁用视频中的声音

Ath*_*hos 2 video android preferences media-player

嗨,我是Android开发和游戏的新手.我目前有一个开放式过场动画,这是一个视频观看,但如果用户从偏好菜单中选择静音,我想静音.问题是我不知道如何在没有实际完全关闭视频的情况下将视频中的音乐静音!

Leo*_*ena 17

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();
            }    
     }
 };
Run Code Online (Sandbox Code Playgroud)

  • @LamaTo 我相信您对正在使用的 MediaController 感到困惑。这是 android.widget.MediaController,它从 API 1 开始可用,而不是 android.media.session.MediaController,它是在 API 21 中添加的。这就是命名不当的问题:/ (2认同)