无法在移动ioS(Safari和Chrome)上自动播放以前缓存的mp3音频
我正在Angular 8中开发一个应用程序,在该应用程序的一部分中,我试图将多个传入的音频mp3缓存在一组对象中,然后根据用户的动作自动播放或播放。不幸的是,它在移动iOS设备上无处不在(在台式机和Android上)工作。缓存的音频有时根本不播放
基本上是从API接收到的几个对象的每个数组,我为该数组中的每个循环mp3的循环运行a。
items.forEach(item => {
const audio = new Audio();
audio.src = urlString;
}
但是,如果我每次想在移动iOS设备上播放声音时,都禁用高速缓存并按API,则一切都会正常运行。
任何想法如何解决?
启用移动iOS音频缓存
[这可能是由于iOS(https://webkit.org/blog/7734/auto-play-policy-changes-for-macos/)的最新更新
我有一个类似的问题,即每次单击我都会收到少量音频文件,并按需缓存它们-尽管从技术上讲,这似乎是由用户交互产生的(每次按下按钮都会产生一个音频文件,新的要缓存的文件数组),大部分时间未自动播放。
我针对iOS的解决方案是在按下的第一个按钮(例如启动/登录按钮)上执行一个功能,该功能缓存了整个应用程序中可能使用的每个音频文件。
我的自动播放功能在执行此操作后仍然可以正常运行,尽管这可以解决一些问题。