Прерывание происходит из-за того, что WKWebview
звук обрабатывается другим процессом и отдельным AVAudioSession
. Категория WKWebview
AVAudioSessionCategory переключится на .playback
, когда звуки воспроизводятся через теги <audio>
или <video>
(или их аналоги javascript). Это должен быть базовый механизм, который использует ваше воспроизведение vimeo (в противном случае прерывания не произойдут).
Существует 2 основных маршрута, которые вы можете go:
1) Если вы в порядке с вашими звуками основного приложения (не * WKWebView
), смешивающимися с любыми другими iOS звуками (такими как воспроизведение iPod musi c), затем go с предложением @Rog из комментария использовать .ambient
для Ваша основная категория аудиосессии приложения. (Это также приведет к тому, что основной аудиосеанс вашего приложения не будет издавать звук, когда аппаратный переключатель тишины находится в выключенном положении.)
2) Более гибкий, но требующий тщательной обработки синхронизации, - дополнительно установить опции .mixWithOthers
Ваше главное приложение аудиосессии .playback
категория. Вы удалите .mixWithOthers
, как только обнаружите, что WKWebView
завершил воспроизведение своего собственного звука. С точки зрения пользователя это будет выглядеть, поскольку ваше приложение все время использует .playback
.
В своем ответе я рассмотрел несколько связанных топи c здесь