我在瀏覽蘋果的提案。 嘗試一個虛擬的HTTP Live Streaming到我的iphone,我寫了一個與Django相對應的.m3u8文件的webservice。我begining與用於IPhone的HTTP實時流式傳輸
#EXTM3U
#EXT-X-TARGETDURATION:#10
#EXT-X-MEDIA-SEQUENCE:#0
響應然後我寫段的網址的響應內(每個10秒6段):
#EXTINF:10,
http://...../sample_low-1.ts
...
,這一切。我每分鐘都會更改包含細分受衆羣網址的部分,因此理論上我期待着一個連續的直播流。
然而,當我與我的iPhone檢查流我遵守下列規定:
手機連接到... M3U8,得到它的內容,開始下載.ts文件,並開始顯示視頻。然後,下載第6段(在.m3u8最後一段)後到達文件結束,看不到
EXT-X-ENDLIST
,並搜索新.m3u8。新的.m3u8已經準備好在服務器上了,因爲我每60秒更新.m3u8的內容。
但是,手機暫停,我無法在手機上實現連續流。
所以,很明顯我在某個地方犯了一個大錯。任何幫助和建議都非常受歡迎。
編輯:原來,遞增媒體序列的作品。
我用我在原文中提到的內容返回Django響應對象。不過,我認爲這就是我應該做的,只是定期更改.m3u8索引文件。我錯了嗎? – 2010-02-07 22:40:46
如果使用「return」關鍵字,則響應完成,並且Django將等待來自客戶端的新請求。另一方面,如果使用「yield」關鍵字,那麼響應沒有完成,並且Django將繼續爲客戶端提供新數據,直到您停止它或者直到連接斷開。 – 2010-02-08 12:19:25
感謝您的幫助。 – 2010-02-09 11:31:31