[英]Mute a playing video by VideoView in Android Application
我想在我的Android應用程序中靜音播放Video by VideoView。 我在VideoView Class中找不到任何方法。 知道怎么做嗎?
我在MediaPlayer類中找到了一個方法“setVolume”,但我無法找到任何工作代碼來播放MediaPlayer類的視頻。 所以我相信我可以通過這種方法設置第0卷。
因此,我正在尋找使用MediaPlayer Class播放視頻的任何工作代碼或如何使用VideoView Class控制音量。
下面是使用VideoView播放視頻的代碼,我正在使用它。
@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.requestFocus();
videoView.start();
}
如果您想要訪問VideoView
的MediaPlayer
,您必須調用MediaPlayer.OnPreparedListener
和MediaPlayer.OnCompletionListener
,然后您可以調用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();
}
}
};
videoview.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setVolume(0, 0);
}
});
我使用MediaPlayer類完成了這個。 我已經使用了MediaPlayer類的setVolume函數將音量設置為0.我也意識到不要使用AudioManager類,因為如果設置音量為0,則使用AudioManager,然后將MediaPlayer和VideoView的所有實例的音量設置為0。 但是如果你將使用MediaPlayer的setVolume()方法,那么它只會使該實例的音量靜音。
使用VideoView也可以將音量設置為0,因為VideoView是MediaPlayer類的包裝器,只允許訪問MediaPlayer的一些功能。 我也讀過一些博客,雖然你可以使用VideoView實例引用MediaPlayer實例,但它非常復雜,不建議這樣做。 希望這會對其他新讀者如何嘗試做類似的事情有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.