Отключить воспроизведение видео с помощью VideoView в приложении для Android
Я хочу отключить воспроизведение видео с помощью VideoView в приложении для Android.
Я не мог найти какой-либо метод для этого в VideoView Class.
Любая идея, как это сделать?
Я нашел метод "setVolume" в классе MediaPlayer, но я не могу найти какой-либо рабочий код для воспроизведения видео по классу MediaPlayer.
Поэтому я считаю, что могу установить том 0 этим методом.
Поэтому я ищу любой рабочий код для воспроизведения видео с использованием класса MediaPlayer или для управления томом с помощью класса VideoView.
Ниже приведен код для воспроизведения видео с помощью 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();
}
Ответы
Ответ 1
Я сделал это, используя класс MediaPlayer.
Я использовал функцию setVolume класса MediaPlayer, чтобы установить том в 0.
также я понял, что не использую класс AudioManager, потому что используя AudioManager, если установленный том равен 0, тогда он устанавливает том равным 0 для всего экземпляра MediaPlayer и VideoView. Но если вы будете использовать метод setVolume() MediaPlayer, то он просто отключит звук только этого экземпляра.
Также установить громкость на 0 легко с помощью VideoView, потому что VideoView является оболочкой класса MediaPlayer и позволяет получить доступ к нескольким функциям MediaPlayer.
Также я прочитал в блоге, что, хотя вы можете ссылаться на экземпляр MediaPlayer с помощью экземпляров VideoView, но его очень сложно и не рекомендуется делать это.
Надеюсь, это будет полезно для других новых читателей, как пытаться делать подобные вещи.
Ответ 2
Если вы хотите получить доступ к MediaPlayer
VideoView
, вам нужно позвонить 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();
}
}
};
Ответ 3
videoview.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setVolume(0, 0);
}
});