我正在使用
<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都不会播放声音。知道为什么吗?
答案 0 :(得分:0)
好吧,我找到了答案,所以我将其发布回来。 iOS Webview一次只允许发出一种声音,而根据我的测试,似乎资源必须在结束后重新加载。
function onSoundEnded(){
snd = new Audio();
snd.addEventListener('ended', onSoundEnded, false);
snd.src = 'snd/click.mp3';
}
onSoundEnded();