Звук iOS WKWebView воспроизводится только один раз

#javascript #ios #cordova #wkwebview

#javascript #iOS #кордова #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 — это предварительно загруженный аудиообъект. Код отлично работает в Chrome и Android Webview, каждый раз, когда я касаюсь его, воспроизводится мой звук.

Но он воспроизводится только один раз на iOS WKWebView, любой дальнейший сенсорный запуск не будет воспроизводить звук. Есть идеи, почему?

Ответ №1:

Что ж, я нашел ответ, поэтому отправляю его обратно. iOS webview позволяет воспроизводить только один звук за раз, и из моих тестов выясняется, что ресурс должен быть перезагружен после завершения.

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

onSoundEnded();