You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS无法读取带媒体片段的Blob视频链接,保留Blob源如何修复?

问题原因

iOS 系统的 Safari 内核对 Blob URL 的哈希片段解析存在兼容缺陷:普通 HTTP/HTTPS URL 后的 #t=xxx 媒体片段参数可以被正常识别,但 Blob URL 后的哈希参数会被内核直接截断丢弃,导致媒体资源无法被正确解析加载。

修复方案

无需修改 Blob 视频源本身,移除 <source> 标签 src 属性后的媒体片段参数,通过 JS 监听视频元数据加载完成后主动跳转至指定时间点,即可实现相同的缩略图效果,同时兼容安卓、iOS 双端。

修改后的代码示例

HTML 部分

<video preload="auto" controls="controls" id="targetVideo">
   <source data-v-3e35226f="" src="blob:http://localhost:8080/0dc9b1e1-5a6c-48c9-9618-3c8f1826dbfd" type="video/mp4">
   <source data-v-3e35226f="" src="blob:http://localhost:8080/0dc9b1e1-5a6c-48c9-9618-3c8f1826dbfd" type="video/quicktime">
</video>

JS 控制部分

const video = document.getElementById('targetVideo');
// 监听视频元数据加载完成事件
video.addEventListener('loadedmetadata', function() {
  // 跳转到指定时间点,生成首帧缩略图
  this.currentTime = 0.001;
});
// 兼容iOS主动触发资源加载,部分iOS版本不会自动触发preload配置的加载逻辑
video.load();

注意事项

  • 该方案完全保留 Blob URL 作为视频源,仅调整参数传递方式,双端均可正常运行
  • 如需批量处理多个视频,可给视频标签添加统一类名批量绑定事件即可
  • 若不需要自动播放,无需添加autoplay属性,上述逻辑仅调整初始展示帧不会触发自动播放

内容的提问来源于stack exchange,提问作者mkchan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 05:12:02