我们在使用视频HTML 5播放器在网页上的ipad上播放mp4文件时遇到问题 .
问题:它不适用于ipad / iphone . 在所有其他平台(Windows,Android,iOS桌面)上,它可以正常工作 .
这是代码:
<video id="my-video" width="400" height="240" preload="true" controls >
<source src="/media/video/6d9ab49-9936-4194-acvb-3cd9b60521fg/myvideo.mp4" />
</video>
将ipad连接到Mac进行调试:无法找到“请求的资源”消息 . 声音非常清晰,但没有意义,因为当您将URL粘贴到浏览器地址栏时可以访问mp4文件 .
已经过测试和检查:
-
将mp4的src设置为fullpath(包括https://或http://)而不是使用虚拟路径;
-
已检查'Accept-Ranges: bytes'的hostingprovider(具有部分内容(206)响应);设置还可以
-
从远程URL播放相同的mp4文件(使用或不使用https访问);奇怪但有意义:这有效!
所以我想问题实际上是无法在ipad上找到或加载mp4 . 但为什么?希望有人能提供帮助 .
2 回答
您是否尝试过这样,直接在
<video>
标签内包含src?如果仍然无效,请尝试仅使用带有src的视频元素,删除预加载和控件 . 只是为了看看你是否可以让它发挥作用 . 如果仍然没有结果,请尝试去绝对的src路径 .
我在Liferay Portal上提供视频时遇到了同样的问题,它在PC和Android上完美运行,但在iOS设备上却没有 . 经过多次测试,我想我终于成功地确定了原因 .
出于某种原因,如果访客用户可以访问视频文件(例如MP4)(即无需登录服务器即可访问),那么它将在iOS上正常工作 . 但是,如果该文件只能由登录用户访问,则无法使用 .
我之所以发生这种情况的理论是iOS可能使用不同的会话来进行范围请求检查,而不是用于播放视频文件的会话 . 因此,范围请求检查失败,因为文件不可访问 .