2015-01-03 36 views
3

經過對StackOverflow和類引用進行研究之後,iOS MPMoviePlayerController無法播放.mov視頻文件。 AVPlayer可以播放.mov文件,但沒有控件。在iOS應用中播放視頻.mov文件的解決方法?還涉及到Adobe Flash動畫

我想我的應用程序播放.MOV文件,因爲的Adobe Flash動畫提供.MOV最清潔和本地外觀的視頻。如果我將相同的視頻轉換爲mp4(支持的格式),即使將視頻速率轉換爲100 MB/s和最高質量的視頻,質量也會有所下降。

很諷刺,QuickTime是蘋果公司的知識產權,其產品不支持.mov影片文件。

如何解決這個問題?

回答

5

的MPMoviePlayerController(和iOS一般)不支持傳送文件。請參閱Apple的class documentation, section "Supported Formats"。但只支持有限數量的視頻編解碼器。假定Quicktime「.mov」格式不是視頻編解碼器,而是音頻/視頻容器格式,可以在任何數量的壓縮編解碼器中包含視頻和音頻(以及其他一些內容)(h.264,mpeg2 ,ProRes,MJPEG,AAC,mp3等)

你的文件不起作用,因爲它們包含使用iOS不支持的編解碼器壓縮的視頻(如果它們是Flash動畫,可能是PhotoJPEG?)。您可以通過在Mac OS X上的Quicktime Player中打開視頻並在窗口菜單中單擊「顯示視頻檢查器」來檢查視頻的格式。

這是不可能添加其他的編解碼器原生的iOS視頻播放系統(的MPMoviePlayerController和朋友)的支持。這留下了兩個選擇;

  • 重新壓縮文件,使之兼容
  • 使用不同的視頻播放框架。

你說你已經試過重新壓縮文件,但這仍然是最好的選擇。 我建議您嘗試使用Handbrake重新壓縮文件。 h.264編解碼器能夠帶來出色的效果(請參閱BluRay電影,iTunes電影商店等)

如果您確實必須以當前格式播放動畫,則需要使用其他視頻播放框架。我建議你看看excellent VideoLan project中的libVLC和VLCKit(我在訪問VLCKit項目頁面時遇到問題,但是a fork is available here)。請注意,非本地視頻播放很可能不會硬件加速,因此會讓用戶的電池受到影響。

最後一件事,如果你的視頻很短,沉默......也許GIF動畫是一種選擇?