我正在寫一個應用程序,其中的一部分允許用戶流/播放視頻。我想限制功能,以便他們只有在有WiFi連接的情況下才能播放視頻。然後,我會保存視頻,以便當他們只有3G(或更少)連接時,他們不能流式傳輸視頻,並且只能播放保存在手機上的視頻。同時流式傳輸並保存視頻?
理想情況下,我想讓MPMoviePlayerController流/播放電影,然後訪問電影數據並保存它。但是,MPMoviePlayerController api似乎不支持對電影數據的訪問。
我想避免和下載然後播放場景。有任何想法嗎?
我正在寫一個應用程序,其中的一部分允許用戶流/播放視頻。我想限制功能,以便他們只有在有WiFi連接的情況下才能播放視頻。然後,我會保存視頻,以便當他們只有3G(或更少)連接時,他們不能流式傳輸視頻,並且只能播放保存在手機上的視頻。同時流式傳輸並保存視頻?
理想情況下,我想讓MPMoviePlayerController流/播放電影,然後訪問電影數據並保存它。但是,MPMoviePlayerController api似乎不支持對電影數據的訪問。
我想避免和下載然後播放場景。有任何想法嗎?
想到兩種解決方案。 這兩種解決方案都要求文件的格式可以逐行播放,例如,你不需要整個文件就可以播放它(但是無論如何這將是一個先決條件)。
到目前爲止,我所看到的人們這樣做不起作用,因爲MPMoviePlayerController無法處理EOF事件。 (未經我自己測試)[Caching videos to disk after successful preload by MPMoviePlayerController
我離開這個答案作爲一個維基,因爲我沒有一個工作解決方案,但我也想要一個。
有人試過這個嗎?你有成功嗎? – calimarkus 2012-08-29 21:01:56
iPhone正在使用漸進式下載,因此它不會保存在設備上。爲此,您需要明確下載它,然後從本地文件夾播放視頻。
有一種方法可以完成這項工作,但您必須編寫自己的HTTP Live Streaming下載程序。
基本上,你解析的.m3u8文件(這是一個非常簡單的標準,但可以變得棘手的備用流和流的可能性會簡單地退出,需要一個新的播放列表繼續),然後下載塊.ts格式到您的本地存儲,比如文檔文件夾或Caches等。
然後,您必須設置本地HTTP服務器,以允許MPMoviePlayerController或AVPlayer通過HTTP訪問文件(因爲它們不會觸摸本地文件路徑),包括指向本地文件的重新編碼的播放列表文件,您必須從原始播放列表創建自己的文件。 CocoaHTTPServer對此非常有用。
一旦你完成了所有的工作,它會很好。在將本地HTTP URL呈現給電影播放器之前,在下載第一個或第二個塊之前,您不可避免地會出現一些延遲,但在此之後,您將無縫下載,錄製和預覽播放。
祝你好運!
嗨,你有成功嗎? – Bkillnest 2016-03-15 02:23:06