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

问题描述 投票:5回答:2

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

有没有办法防止这种行为,而只是在视频取消静音时才获得音频焦点?

android html5 audio video android-webview
2个回答
0
投票

你试过abandonAudioFocus()吗?我会尝试在播放开始时实现这一点,然后在他决定取消静音时请求requestAudioFocus()。

你可以在这里看到官方文档:https://developer.android.com/reference/android/media/AudioManager.html#abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener)


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执行上面的字符串

© www.soinside.com 2019 - 2024. All rights reserved.