在视频列表中静音/取消静音的最佳方法是啥

Posted

技术标签:

【中文标题】在视频列表中静音/取消静音的最佳方法是啥【英文标题】:What is the best approach to mute/unmute sound in list of videos在视频列表中静音/取消静音的最佳方法是什么 【发布时间】:2017-04-25 07:00:33 【问题描述】:

我正在使用TextureViewMediaPlayer 显示视频列表。我想为所有视频静音/取消静音。

有什么问题

问题是当我使用notifyDataSetChanged() 方法时,播放视频会重新加载,因为onBindViewHolder()notifyDataSetChanged() 之后执行。

静音/取消静音图标点击代码

case R.id.volume_button:
                if (isToPlaySoundInitially) 
                    volumeKey.setImageResource(R.drawable.unmute_video);
                    isToPlaySoundInitially = false;
                    mVideoView.unMuteVideo();

                 else 
                    volumeKey.setImageResource(R.drawable.mute_video);
                    isToPlaySoundInitially = true;
                    mVideoView.muteVideo();

                
                notifyDataSetChanged();
                break;

静音/取消静音的方法

public void muteVideo() 
    if (this.mp != null) 
        mp.setVolume(0, 0);
    


public void unMuteVideo() 
    if (this.mp != null) 
        mp.setVolume(1, 1);
    

请建议我如何将列表中所有项目的声音静音/取消静音。

谢谢。

【问题讨论】:

你能发布一些你的代码吗? 我已经用适配器中的点击事件代码更新了我的问题 我希望你为你的项目创建一个持有人,你可以直接触摸你的项目视图。 是的,但我必须在单击任何一项时为所有项静音。喜欢在 Facebook 中 【参考方案1】:

使用 MediaPlayer 类的 setVolume 函数将音量设置为 0。 不要使用 AudioManager 类,因为如果使用 AudioManager 将音量设置为 0,那么它会将所有 MediaPlayer 和 VideoView 实例的音量设置为 0。

但是,如果您将使用 MediaPlayer 的 setVolume() 方法,那么它只会静音该实例的音量。

使用 VideoView 也不容易将音量设置为 0,因为 VideoView 是 MediaPlayer 类的包装器,只允许访问 MediaPlayer 的一些功能。

【讨论】:

我认为这不是我的问题。我对特定视频静音和取消静音没有任何问题。当我将任何一个视频静音时,我想为所有视频静音,取消静音也是如此。如果您有任何疑问,可以查看 Facebook 应用程序。 希望对您有所帮助:***.com/a/10896086/7795876

以上是关于在视频列表中静音/取消静音的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

Swift 3:如何在使用 AVFoundation 录制视频期间将麦克风静音/取消静音

使用图像的 Javascript 静音/取消静音视频

Objective-C:在 iOS 上使用 AVFoundation 录制视频时静音/取消静音

无法在移动设备上使用 Revolution Slider 取消 YouTube 视频静音

强制取消静音 HTML5 视频自动播放

想要为全屏视频背景上的音频创建自定义静音/取消静音按钮