2017-04-07 79 views
2

我正在試圖在safari iOS上使用具有引擎蓋下的three.js的Aframe流。但視頻只顯示音頻播放的黑屏。視頻src的類型是.m3u8。我試圖通讀大量相關帖子,但沒有一篇似乎有適當的解決方案。 HLS & WebGL可以在iOS上玩嗎?如果沒有,有人可以幫我解決。Hls在iOS/Safari上的視頻流

上可用GitHub上的問題,一對夫婦的討論:

HLS m3u8 video streaming

HLS on Safari

回答

2

你的問題:

是不是某種一廂情願的獲得HLS & WebGL可以在iOS上玩嗎?

是的,一廂情願:-)問題/問題/錯誤是蘋果,而不是任何庫。無論JS庫如何,A-Frame,Three等,這對於iOS中的任何瀏覽器(iOS上的所有瀏覽器基本上都是Safari的包裝器)和OSX Safari都是一個問題。

的問題是,這個(從我的理解):

  1. 在WebGL的歷史的某個時刻,出現了跨起源內容(視頻,圖像等)的限制。我找不到這個源代碼,但我記得在某處閱讀它,所以這可能不是100%準確。
  2. 最近(幾年前?2015?)所有主流瀏覽器都得出結論:用於WebGL的跨媒體媒體是安全的。除Apple/Safari之外。
  3. 對於大多數瀏覽器,<video>元素上的crossorigin屬性可能表示此內容來自其他來源。在Safari中,無論出於何種原因,該屬性都被忽略或未實現。實際上,它看起來像Safari基於的WebKit,fixed this as far back as 2015,但Apple仍未實現它。即使蘋果refuses to comment on any progress

可能的解決方法:在Safari

  1. WebGL的工作有進步(而不是像HLS /短跑流).mp4視頻。查看iOS/Safari上Facebook上的任何360視頻(網站,而不是應用程序),並且您會注意到源是.mp4
  2. 使用HLS(或Dash),但不帶WebGL播放視頻。看看YouTube上的任何360視頻(網站,而不是應用),我認爲他們正在使用HLS或Dash,但重點是他們的視頻,而Facebook沒有。

下面是真正問題的一個很好的起點:link

這裏是另一個詳細的線程:link