我在用着

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


使用[email protected] + [email protected]

我已将偏好设置为

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


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

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


snd是已预加载的Audio对象。每当我触摸它时,该代码就可以在Chrome和Android Webview上正常播放。

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

最佳答案

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

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

onSoundEnded();

关于javascript - iOS WKWebView音频仅播放一次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55619490/

10-10 09:53