iOS WKWebView音频只能播放一次

时间:2019-04-10 18:51:49

标签: javascript ios cordova wkwebview

我正在使用

<plugin name="cordova-plugin-wkwebview-engine" spec="^1.1.4" />

使用Cordova@7.1 + iOS@5.0.0

我将首选项设置为

<preference name="AllowInlineMediaPlayback" value="true" />
<preference name="MediaPlaybackRequiresUserAction" value="false" />

在页面的js代码中,我播放声音(一次加载),但这仅在第一次使用时

 (...)on('touchstart', function(){
     snd.play();
 });

snd是已预加载的Audio对象。 该代码在Chrome和Android Webview上均可正常运行,每次我触摸该代码即可播放声音。

但是它只能在iOS WKWebView上播放一次,任何进一步的touchstart都不会播放声音。知道为什么吗?

1 个答案:

答案 0 :(得分:0)

好吧,我找到了答案,所以我将其发布回来。 iOS Webview一次只允许发出一种声音,而根据我的测试,似乎资源必须在结束后重新加载。

function onSoundEnded(){
    snd = new Audio();
    snd.addEventListener('ended', onSoundEnded, false);
    snd.src = 'snd/click.mp3';
}

onSoundEnded();