在Android应用程序中通过VideoView将播放的视频静音

在Android应用程序中通过VideoView将播放的视频静音,android,video,Android,Video,我想在Android应用程序中通过VideoView将正在播放的视频静音。 我在VideoView课上找不到这样做的方法。 你知道怎么做吗 我在MediaPlayer类中找到了一个方法“setVolume”,但我找不到任何工作代码来通过MediaPlayer类播放视频。 所以我相信我可以用这个方法设置音量0 因此,我正在寻找使用MediaPlayer类播放视频的任何工作代码,或者如何使用VideoView类控制音量 下面是使用我正在使用的VideoView播放视频的代码 @Override pu

我想在Android应用程序中通过VideoView将正在播放的视频静音。 我在VideoView课上找不到这样做的方法。 你知道怎么做吗

我在MediaPlayer类中找到了一个方法“setVolume”,但我找不到任何工作代码来通过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();


}

我已经使用MediaPlayer类完成了这项工作。 我已经使用MediaPlayer类的setVolume函数将音量设置为0。 我还意识到不要使用AudioManager类,因为使用AudioManager时,如果将卷设置为0,则会将MediaPlayer和VideoView的所有实例的卷设置为0。但是如果您使用MediaPlayer的setVolume()方法,那么它只会使该实例的卷静音

另外,使用VideoView将音量设置为0也非常简单,因为VideoView是MediaPlayer类的包装器,只允许访问MediaPlayer的一些功能。 另外,我在一些博客上读到,虽然您可以使用VideoView实例引用MediaPlayer实例,但它非常复杂,不建议这样做。
希望这将有助于其他新读者尝试做类似的事情。

如果你想访问
视频视图的
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();
            }    
     }
 };

尝试使用中建议的AudioManager。嗨,yorkw,我想在静音模式下播放视频。那么如何使用AudioManager播放视频呢?使用VideoView在使用AudioManager控制音量的同时播放视频。谢谢。它起作用了。顺便说一句,现在我想用这个静音视频播放其他音乐。那怎么可能呢?实际上,当我通过AudioManager为视频将音量设置为0时。它将我正在播放的另一首歌的音量设置为0。有没有这样的想法。i、 用我的Android应用程序在后台播放其他歌曲的视频(静音)。有时正常,有时不正常@拉吉亚克-找到可靠的解决方案了吗?有时有效,有时无效。我的猜测是,如果调用mp.setVolume时videoView可见,则会发生静音。否则,不会发生任何行动。如果我错了,请纠正我。显然,这发生在加载VideoViews时。如果我想在以编程方式播放视频时静音,该怎么办?
videoview.setOnPreparedListener(new OnPreparedListener() {

        @Override
        public void onPrepared(MediaPlayer mp) {

            mp.setVolume(0, 0);
        }
    });