Подтвердить что ты не робот

Отключить воспроизведение видео с помощью 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();


}
4b9b3361

Ответ 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);
        }
    });