html5 视频无法在 iPad 中播放

发布于 2024-11-18 19:38:27 字数 1004 浏览 1 评论 0原文

我有一个视频标签,它在 Safari、Chrome 中工作正常,但在 iPad/iPhone 上不行。我做错了什么。

<a onclick="showVideoPlayer('http://www.mywebsite.com/videos/a video file.m4v')" id="video1" href="#">Play video</a>

js代码

function showVideoPlayer(videoSrc, showDownloadLink){
            alert(videoSrc);
            if(!videoSrc)
                return;

            $('div#overlay').show();
            var $videoPlaceHolder = $('div#video-placeholder');
            $videoPlaceHolder.show();

            var $video = $videoPlaceHolder.find('video');

            var winWidth = $(window).width() - 80;
            var winHeight = $(window).height() - 120;

            $video.attr('src', videoSrc);
            $video.attr('width', winWidth + 'px');
            $video.attr('height', winHeight + 'px');
            $videoPlaceHolder.append($video);
            if(showDownloadLink){
                $('#video-placeholder .down').show();
            }

        }

I have a video tag, which working fine in Safari, Chrome but not on iPad/iPhone. Whats I am doing wrong.

<a onclick="showVideoPlayer('http://www.mywebsite.com/videos/a video file.m4v')" id="video1" href="#">Play video</a>

js code

function showVideoPlayer(videoSrc, showDownloadLink){
            alert(videoSrc);
            if(!videoSrc)
                return;

            $('div#overlay').show();
            var $videoPlaceHolder = $('div#video-placeholder');
            $videoPlaceHolder.show();

            var $video = $videoPlaceHolder.find('video');

            var winWidth = $(window).width() - 80;
            var winHeight = $(window).height() - 120;

            $video.attr('src', videoSrc);
            $video.attr('width', winWidth + 'px');
            $video.attr('height', winHeight + 'px');
            $videoPlaceHolder.append($video);
            if(showDownloadLink){
                $('#video-placeholder .down').show();
            }

        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千纸鹤 2024-11-25 19:38:27

iOS 因对播放视频过于挑剔而臭名昭著。以下是需要检查的一些事项:

  1. 使用 H.264 基线配置文件编码的视频(不保证其他配置文件能够在 iOS 下播放)
  2. 使用适当的内容类型标头 (binary/octet-stream 在 iOS 上不起作用)
  3. 如果您最终在 中使用 标记>,确保该值type 属性与服务器提供的 content-type 标头完全匹配 - 区分大小写。
  4. 提供视频文件的服务器必须支持字节范围请求 - 如果这是问题所在,iOS Safari 的开发者控制台应该显示类似的投诉。

这些是我遇到的最常见的错误(我在在线视频平台工作) - 希望您的问题会像找出您缺少的要求一样简单。

iOS is notorious for being extra-fussy about playing back videos. Here's a few things to check for:

  1. Video encoded using H.264 Baseline Profile (other profiles are not guaranteed to play under iOS)
  2. Video file being served with an appropriate content-type header (binary/octet-stream will not work on iOS)
  3. If you end up using <source type="foo" src="bar" /> tags within your <video />, ensure that the value of the type attribute matches exactly the content-type header supplied by the server - this is case-sensitive.
  4. The server delivering the video file must support byte range requests - iOS Safari's developer console should show complaints along these lines if this is the problem.

Those are the most common errors I've come across (I work at an online video platform) - hopefully, your problem will be as simple as finding out which requirement you're missing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文