2011-07-21 46 views
2

您好我是剛剛開發android並開發遊戲。我目前有一個視頻視圖,但如果用戶從首選項菜單中選擇靜音,我想靜音。問題是我不知道如何在視頻視圖中將音樂靜音,而不必完全關閉視頻!在視頻中禁用聲音

回答

1

您可以做的最好的方法是使用AudioManager在剪切場景開始時將音樂流靜音,並在完成後取消靜音:VideoView不提供獨立的靜音控件。

15

的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