【问题标题】:Problem with mp3 audio caching on mobile iOS devices (both mobile Chrome and Safari)移动 iOS 设备(移动 Chrome 和 Safari)上的 mp3 音频缓存问题
【发布时间】:2020-02-21 21:32:45
【问题描述】:

无法在移动 ios(safari 和 chrome)上自动播放以前缓存的 mp3 音频

我正在使用 Angular 8 开发一个应用程序,在该应用程序的一部分中,我试图将几个传入的音频 mp3 缓存在一组对象中,然后自动播放或根据用户操作播放它。不幸的是,它适用于除移动 iOS 设备之外的任何地方(在桌面和 Android 上)。缓存的音频有时根本不播放

基本上对于从 API 接收的几个对象的每个数组,我为每个循环运行一个缓存该数组中的 mp3。

items.forEach(item => {
       const audio = new Audio();
       audio.src = urlString;
}

但是,如果我每次想在移动 iOS 设备上播放声音时禁用缓存并点击 API,一切都会正常运行。

知道如何解决这个问题吗?

启用移动 iOS 音频缓存

【问题讨论】:

    标签: javascript ios webkit


    【解决方案1】:

    这可能是由于 iOS 最近的更新 (https://webkit.org/blog/7734/auto-play-policy-changes-for-macos/)

    我遇到了类似的问题,我每点击几下就会收到少量音频文件,并按需缓存它们——尽管从技术上讲,这似乎是由用户交互生成的(每次按下按钮都会生成要缓存的新文件数组)它大部分时间都不会自动播放。

    我对 iOS 的解决方案是在按下的第一个按钮(例如开始/登录按钮)上执行一个函数,该函数缓存可能在整个应用程序中使用的每个音频文件。

    执行此操作后,我的自动播放工作正常,尽管需要解决一些问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 2016-11-24
      • 2014-05-15
      • 1970-01-01
      • 2013-12-22
      相关资源
      最近更新 更多