【问题标题】: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 中

标签: android android-recyclerview android-viewholder notifydatasetchanged


【解决方案1】:

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

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

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

【讨论】:

  • 我认为这不是我的问题。我对特定视频静音和取消静音没有任何问题。当我将任何一个视频静音时,我想为所有视频静音,取消静音也是如此。如果您有任何疑问,可以查看 Facebook 应用程序。
  • 希望对您有所帮助:stackoverflow.com/a/10896086/7795876
猜你喜欢
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 2015-07-23
相关资源
最近更新 更多