Html视频标签无法在Angular应用中的Safari中播放

问题描述 投票:5回答:2

我正在尝试在我的有角度的应用程序中播放视频,它似乎可以在除Safari之外的所有浏览器中使用:

<video controls autoplay muted class="media">
    <source src="https://my-site/files/video.mp4" type="video/mp4" />
</video>

我已经看到了这个问题:HTML5 Video tag not working in Safari , iPhone and iPad,它不能解决我的问题。

起初,我遇到了字节范围的问题,我将其修复,但仍然无法正常工作。

如果将视频标签放置在一个空的html网页中,则视频会播放,但在我的角度应用程序中却不会。

我用提琴手来获取http痕迹,但有一些我不明白的区别。

当我在空网页中放置标签时,我有以下要求:

GET https://my-site/files/video.mp4 HTTP/1.1
Host: (my-site)
Accept-Encoding: identity
X-Playback-Session-Id: 14692D0E-A88B-4253-8B8A-BC580AB82174
Accept-Language: fr-fr
Range: bytes=0-1
Accept: */*
User-Agent: Mozilla/5.0 (iPod touch; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1
Referer: (http://my-site/)
DNT: 1
Connection: keep-alive

我可以看到几个请求,它们具有不同的范围,并且可以播放视频。

但是当我尝试从Angular应用播放视频时,请求就不同了:

GET https://my-site/files/video.mp4 HTTP/1.1
Host: (my-site)
Connection: keep-alive
Accept: */*
User-Agent: Mozilla/5.0 (iPod touch; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1
Accept-Language: fr-fr
Referer: (http://my-site/)
Accept-Encoding: br, gzip, deflate

这次没有范围标头,因此我的服务器发送了整个文件。而且它不播放。

我不知道是什么原因造成了这种差异。视频的网址是相同的(尽管html网页位于不同的域中)。

ios angular safari html5-video
2个回答
1
投票

您是否尝试添加playsinline属性?

<video controls autoplay playsinline muted class="media">
    <source src="https://my-site/files/video.mp4" type="video/mp4" />
</video>

0
投票

请尝试<iframe>

示例:

<iframe title="vimeo-player" src="https://player.vimeo.com/video/336853299" width="640" height="360" frameborder="0" allowfullscreen></iframe>
© www.soinside.com 2019 - 2024. All rights reserved.