我正在使用TextureView
和MediaPlayer
显示视频列表。我想为所有视频静音/取消静音。
有什么问题
问题在于,当我使用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);
}
}
请建议如何为列表中的所有项目静音/取消静音。
谢谢。
答案 0 :(得分:0)
使用MediaPlayer类的setVolume函数将音量设置为0。 不要使用AudioManager类,因为如果将音量设置为0,则使用AudioManager,然后将MediaPlayer和VideoView的所有实例的音量设置为0。
但是如果你将使用MediaPlayer的setVolume()方法,那么它只会使该实例的音量静音。
使用VideoView也不容易将音量设置为0,因为VideoView是MediaPlayer类的包装器,只允许访问MediaPlayer的少数功能。