javascript - Angular 7 Service Worker缓存音频文件导致Safari出现范围 header 问题

标签 javascript angular caching audio service-worker

在我的 Angular 应用程序中,Safari上的任何new audio(audio src here)请求的范围请求 header 都有问题。从服务器请求音频时,音频文件的持续时间将正常返回。但是,当从服务人员处请求音频时,它将音频持续时间返回为Infinite。

我周围有一个Google,Safari显然存在此问题,它将缓存的媒体文件的范围 header 设置为“bytes = 0-1”,这就是问题所在,如下所示:

有没有一种方法可以拦截new audio(audio src here)请求并修改 header ,或者以某种方式从服务 worker 缓存策略中排除任何媒体请求?

我当前的服务 worker 配置如下:

{
  "index": "/index.html",
  "assetGroups": [
    {
      "name": "app",
      "installMode": "prefetch",
      "resources": {
        "files": [
          "/assets/img/logo.png",
          "/assets/img/no-internet-icon.jpg",
          "/favicon.ico",
          "/index.html",
          "/*.css",
          "/*.js"
        ]
      }
    },
    {
      "name": "assets",
      "installMode": "lazy",
      "updateMode": "prefetch",
      "resources": {
        "files": [
          "/assets/**"
        ]
      }
    }
  ]
}

最佳答案

也许您应该在音频响应的响应 header 中添加Content-Range

检查https://stackoverflow.com/a/37614302/11339645

关于javascript - Angular 7 Service Worker缓存音频文件导致Safari出现范围 header 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55129129/

相关文章:

angular - 测试 FormArray

Angular 2/PrimeNg - 通过@ViewChild 更新图表

javascript - Angular2错误: Return type of public method from exported class has or is using private name

algorithm - 为什么这个简单的 O(n) Haskell 算法表现得更像 O(2^n)?

Java 基于时间的映射/缓存,带有过期键

javascript - 根据条件为变量赋值的最简单方法

javascript - 在 JavaScript 的 document.title 中设置 » HTML 实体?

PHP 代码点火器 : Passing dynamic form data to a view without having to refetch from the database upon validation errors

javascript - 我怎样才能绑定(bind)一个变量来 Sequelize 文字?

javascript - 使用 Promise 进行方法链接