我在Safari中遇到了一個奇怪的錯誤,當我通過PHP爲MP4視頻提供服務時(使用基於令牌的方式對文檔根目錄下的文件進行模糊處理認證系統),Safari出於某種原因觸發了<video>'s
onerror事件,並且視頻從未加載(我無法從發送給onerror的事件對象中獲取任何有用的信息 - 所有內容都未定義)。無法在Safari/Mac上通過PHP提供HTML5視頻(5.0)
當我直接訪問PHP腳本(即,視頻未嵌入頁面中)時,視頻控件會在瞬間出現,然後閃爍到QuickTime問號。
當我直接訪問MP4文件時,它按預期工作。
奇怪的是,嵌入式視頻在最新版本的Chrome for Mac中完美運行。
這裏是頭通過PHP訪問時:
Connection:Keep-Alive
Content-Disposition:inline; filename="test.mp4"
Content-Length:5558749
Content-Type:video/mp4
Date:Tue, 22 Jun 2010 01:24:25 GMT
Keep-Alive:timeout=10, max=29
Server:Apache/2.2.15 (CentOS) mod_ssl/2.2.15 0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
X-Powered-By:PHP/5.2.13
這裏是頭時test.mp4直接訪問:
Accept-Ranges:bytes
Connection:Keep-Alive
Content-Length:5558749
Content-Type:video/mp4
Date:Tue, 22 Jun 2010 01:26:45 GMT
Etag:"1c04757-54d1dd-489944c5a6400"
Keep-Alive:timeout=10, max=30
Last-Modified:Tue, 22 Jun 2010 01:25:36 GMT
Server:Apache/2.2.15 (CentOS) mod_ssl/2.2.15 0.9.8l DAV/2 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
唯一不同的標題是:接受-範圍(我認爲這是不必要的),Etag,Last-Modified,Content-Disposition和X-Powered-By。
Chrome不僅可以處理PHP提供的視頻,而且當我使用相同的腳本通過Flash播放器加載MP4時,它也可以正常工作。我無法弄清楚Safari是如何窒息的。
編輯:此外,當我更改內容處置爲「附件」時,Safari將下載MP4文件就好了。
我發現這很好。謝謝。同樣的問題似乎發生在當前版本的Firefox 27和Win 7上的IE 11上。在Chrome 32上工作時。 – Haprog 2014-02-19 14:51:22
那麼解決方案是什麼? – Geo 2014-03-17 18:50:01
@Geo我想我最終使用查詢字符串來存儲狀態,因爲你不能使用'$ _COOKIE' /'$ _SESSION'。 – JKS 2014-03-18 22:58:14