找回密码
 注册免广告
搜索
长桥证券羊毛 📈熊猫速汇 50 元券 🔥ByBit 交易所羊毛🐑MyFin 5 欧元羊毛 🔥
人人必备的 Wise 💳英、德、香港转运 📦,送 $25币安手续费 9 折Ledger 硬件钱包送比特币
最便宜的 eSIM 流量手机号 📱数字货币银行卡,注册送 7 美元💲IBKR开户送 $1000 股票 
查看: 77|回复: 0

[nextjs] nextjs 输出缓存的音频文件导致 iOS 无法播放

[复制链接]
HelloWorld 发表于 3 天前 | 显示全部楼层 |阅读模式

注册免广告

您需要 登录 才可以下载或查看,没有账号?注册免广告

×
本帖最后由 HelloWorld 于 2025-4-16 08:01 编辑

有个网页需要用 audio 标签播放音频,如果给原始的音频链接,则播放正常

如果是通过 nextjs api 缓存后再输出文件流,会导致 iOS/iPad 无法播放,但是其它设备可以播放

对比 response header 发现 nextjs api 返回的音频文件多了个 content-range: bytes 0-255051/255052

查阅资料发现 iOS 设备对音频文件比较严格,header 里出现 content-range 会导致无法播放

nextjs api 返回 content-range 是强制的,无法取消,于是只好做个兼容,判断是 iOS 设备直接给音频链接,不缓存,其它设备再进行缓存

导致的问题是 iOS 点击播放可能要等一会才有声音,因为音频文件是 AI tts,有时生成需要几秒钟

补充:
解决了,用 post 方式去 nextjs api 获取音频文件,得到文件后再在前端播放
如果帖子/回帖帮助到你,请给作者评分/点赞
您需要登录后才可以回帖 登录 | 注册免广告

本版积分规则

排行榜|意见建议|数字居民论坛

GMT+8, 2025-4-19 09:07

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表