在视频中禁用声音

问题描述:

您好我是刚刚开发android并开发游戏。我目前有一个视频视图,但如果用户从首选项菜单中选择静音,我想静音。问题是我不知道如何在视频视图中将音乐静音,而不必完全关闭视频!在视频中禁用声音

您可以做的最好的方法是使用AudioManager在剪切场景开始时将音乐流静音,并在完成后取消静音:VideoView不提供独立的静音控件。

的AudioManager是不是一个好的选择,因为你所有的静音系统...如果你想获得你要调用MediaPlayer.OnPreparedListener和MediaPlayer.OnCompletionListener一个VideoView的MediaPlayer的

,那么你可以调用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(); 
      }  
    } 
}; 
+0

这不是低API一个不错的选择,媒体控制器请求21和大量的应用程序的使用较低的API,然后这一点。 – LamaTo

+0

@LamaTo - “低API”和“请求21”是什么意思? – Jaydev

+0

@Jaydev - API level 21适用于android 5.0及以上版本。请参阅[this](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html)以获取更多信息 – LamaTo