有点卡在这个上了。
我正在从 Cloudflare Worker 提供 .mp3 文件,解压缩存档并返回 mp3 文件的缓冲区。它在 Chrome、edge 以及 MacOS 上的 Safari 甚至 iOS 模拟器中运行良好。但是,无法在 iOS Safari 上加载。无法加载资源,插件处理加载。在将 HTTP 响应代码更改为 206 之前,我最初在 MacOS Safari 上也遇到了相同的错误。这是我的 Cloudflare 工作代码的响应部分。
const mp3ArrayBuffer = await mp3ZipObject.async('arraybuffer');
const total = mp3ArrayBuffer.byteLength;
const start = 0;
const end = total - 1;
const contentRange = `bytes ${start}-${end}/${total}`;
return new Response(mp3ArrayBuffer, {
status: 206,
headers: { 'Content-Type': 'audio/mpeg', 'Content-Range': contentRange, 'Content-Encoding': 'identity' },
});
}
这里是 mp3 文件的链接。 MP3 文件
我不确定,但我怀疑采样率是问题所在。很少有人使用 24 kHz 采样率。最初的 MP3 标准中并不支持它。 (我的意思是,它已经存在了近 30 年,但也许这是一个错误或有意的兼容性差异,很少有人关心,所以它还没有得到修复。)
48 kHz 的运气可能会更好。