最新のSafari v11.0は、JavaScript経由で動的に設定されたMP4でビデオを再生できません。しかし、それはChrome、Edge、FFでうまくいきます。SafariがMP4ビデオをロードできない
要求の下で:
<video class="replay" autoplay="true" autostart="true" autobuffer="true" playsinline="true" webkit-playsinline="webkit-playsinline" controls="controls" style="" preload="auto" muted="true">
<source src="https://videomail.io/videomail/11e7-ad5a-4b14b680-a354-934ec5b49c33/preview/type/mp4/x-videomail-site-name/videomail.io/videomail.mp4?1507598907103" type="video/mp4">
</video>
問題は、Safariは、[ネットワーク]タブの下に赤でこれを強調していることである:
私のコードは、そのようなMP4リソースを指し示すsrc
要素を設定し、 &レスポンス(右側)はキャンセルされたと言います。どうして?
プラスリクエストヘッダーの下に表示されます。Range bytes=0-1
奇妙に思える。私はそのリソースをうっすらと見えますが、完全にダウンロードできます。
多くの異なる変更を試みましたが、すべて失敗します。それがnginxの問題、私のJSコードのバグ、またはSafariのものかどうかはわかりません。どんな手がかりも大歓迎です。
再現することが非常に簡単:Safariでは
- 、www.videomail.io
- スタートプレビュー上のビデオ
- をクリックしていないビデオを録画する(Chromeで正常に動作します)立ち上がるに行く
Safari、または一般的にiOSでは、ビデオのバイナリデータがファイル全体として配信されないと予想しています。サイズが小さいため、「Range bytes = 0-1」 。 –
'video.canPlayType(" video/mp4 ")'は 'console'でログに記録されますか? – guest271314
@ guest271314私に「多分」返す –