簡體   English   中英

M4A 文件無法在 Safari 中播放,但在 Chrome 中播放

[英]M4A File Not Playing in Safari But Does Play in Chrome

我在<audio>標簽中有一個 MP3 和一個 M4A 文件。 MP3 文件在 Safari 和 Chrome 中播放良好,M4A 文件在 Chrome 中播放良好,但 M4A 在 Safari 中無法播放。 我可以在 Safari 中看到 M4A 的音頻控件。 我點擊播放圖標,但沒有任何反應。

即使對於在 Safari 中播放良好的 MP3 文件,當我單擊“網絡”選項卡時,我也會看到“嘗試加載資源時發生錯誤”。 預覽選項卡中的消息。 我注意到在 Chrome 中,傳輸編碼作為分塊返回,但在 Safari 中它是身份。

MP3 響應 - Safari:

HTTP/1.1 200 OK
Content-Type: audio/mpeg
Content-Disposition: inline; filename=Audio.mp3
X-XSS-Protection: 1
Transfer-Encoding: Identity
Date: Sat, 04 Apr 2020 00:10:29 GMT
Connection: keep-alive
X-Content-Type-Options: nosniff
Accept-Ranges: bytes
X-Frame-Options: SAMEORIGIN
X-Powered-By: Express
X-RequestID: undefined
X-Permitted-Cross-Domain-Policies: none
Strict-Transport-Security: max-age=3600

M4A 響應 - Safari:

Response
HTTP/1.1 200 OK
Content-Type: audio/mp4
Content-Disposition: inline; filename=Audio.m4a
X-XSS-Protection: 1
Transfer-Encoding: Identity
Date: Sat, 04 Apr 2020 00:10:29 GMT
Connection: keep-alive
X-Content-Type-Options: nosniff
Accept-Ranges: bytes
X-Frame-Options: SAMEORIGIN
X-Powered-By: Express
X-RequestID: undefined
X-Permitted-Cross-Domain-Policies: none
Strict-Transport-Security: max-age=3600

M4 響應 - 鉻

Accept-Ranges: bytes
Connection: keep-alive
Content-disposition: inline; filename=Audio.m4a
Content-Type: audio/mp4
Date: Sat, 04 Apr 2020 00:15:02 GMT
Strict-Transport-Security: max-age=3600
Transfer-Encoding: chunked
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-Permitted-Cross-Domain-Policies: none
X-Powered-By: Express
X-RequestID: undefined
X-XSS-Protection: 1

我解決了這個問題,將兩個源 URL 放在音頻標簽上; 相同的 URL 讀取編碼的方式不同:

<audio controls>
    <source src="{.URL}" type="audio/ogg">
    <source src="{.URL}" type="audio/mp4">
</audio>

給出響應的服務器應該有 header 接受范圍,以傳輸由幾個部分分塊的文件。 您可以在此答案中看到更多信息: iPhone/iPad Safari 是否需要“Accept-Ranges”header 用於視頻?

我希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM