在播放HTML5视频时阻止WebView获得音频焦点

时间:2018-02-23 14:37:20

标签: android html5 audio video android-webview

我目前正在开发一款播放视频的应用,一些是原生的,一些是HTML5。对于原生视频,我使用ExoPlayer播放视频,但有些消息来源并未向我提供原始视频文件,因此必须在WebView中播放HTML5视频。所有视频都会在音频静音的情况下开始播放,如果用户取消静音,我会获得音频焦点。这适用于ExoPlayer视频,但一旦视频播放开始,WebView就会获得音频焦点。

有没有办法阻止此行为,而只是在视频取消静音时获取音频焦点?

2 个答案:

答案 0 :(得分:0)

您是否尝试过abandonAudioFocus()?我会尝试在播放开始时实现它,然后在他决定取消静音时请求requestAudioFocus()。

您可以在此处查看官方文档:https://developer.android.com/reference/android/media/AudioManager.html#abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener)

答案 1 :(得分:0)

<video id="myPlayer" controls muted>
  <source src="Your audio source" type="video/mp4">
  Your browser does not support the video tag.
</video>

muted关键字将启动带有静音音频的视频,而controls将启用html5的播放器控件,用户可以取消静音。

如果您不想使用html的播放器控件。然后你可以从android执行以下代码,以便在你想要的时候取消音频

  

取消静音

String s = "var video = document.getElementById('your-video-id');";
       s+="video.muted= false";

您可以使用此Answer

执行上述字符串