2011-07-29 52 views
2

我使用的是經典的VideoView實現在Android上播放視頻。在播放三星設備上的mp4文件時出現PVMFErrContentInvalidForProgressivePlayback錯誤

同樣的mp4文件url在HTC Desire上正常工作。但它不適用於三星設備。

三星Galaxy S1和三星Galaxy Tab說:"Cannot play video. Unable to play video. Invalid streaming data"
三星5110說:"Cannot play video. Sorry this video is not valid for streaming to this device"

當我看着用文本編輯器的MP4文件,我意識到MDAT標籤是以前MOOV

我的問題是它如何在HTC上工作,但它不在三星設備上。而我沒有任何改變mp4文件格式的機會,那麼我該如何克服這個問題呢?

07-29 15:24:21.740: ERROR/PlayerDriver(2402): PlayerDriver::it is a not Protected file 
07-29 15:24:21.763: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferWriteDataStreamImpl 
07-29 15:24:21.806: ERROR/MediaPlayerService(2402): Client::notify In 
07-29 15:24:21.806: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferReadDataStreamImpl 
07-29 15:24:21.806: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferReadDataStreamImpl 
07-29 15:24:21.810: ERROR/MediaPlayer(15339): message received msg=3, ext1=0, ext2=0 
07-29 15:24:21.810: ERROR/MediaPlayer(15339): callback application 
07-29 15:24:21.810: ERROR/MediaPlayer(15339): back from callback 
07-29 15:24:21.822: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferReadDataStreamImpl 
07-29 15:24:21.822: ERROR/(2402): IIIIIII Inside Constructor of PVMFMemoryBufferReadDataStreamImpl 
07-29 15:24:21.822: ERROR/MediaPlayerService(2402): Client::notify In 
07-29 15:24:21.822: ERROR/MediaPlayer(15339): message received msg=200, ext1=1, ext2=26 
07-29 15:24:21.822: ERROR/MediaPlayer(15339): callback application 
07-29 15:24:21.822: ERROR/MediaPlayer(15339): back from callback 
07-29 15:24:21.822: ERROR/PlayerDriver(2402): Command PLAYER_INIT completed with an error or info -82 
07-29 15:24:21.822: ERROR/MediaPlayerService(2402): Client::notify In 
07-29 15:24:21.822: ERROR/MediaPlayer(15339): message received msg=100, ext1=200, ext2=-82 
07-29 15:24:21.822: ERROR/MediaPlayer(15339): error (200, -82) 
07-29 15:24:21.822: ERROR/MediaPlayer(15339): callback application 
07-29 15:24:21.826: ERROR/MediaPlayer(15339): back from callback 
07-29 15:24:22.025: ERROR/MediaPlayer(15339): Error (200,-82) 

回答

3

終於我發現了這個問題。

當我用mp4box暗示mp4文件時,它也在三星設備上播放。

mp4box視頻文件的重新排列MOOV和MDAT標籤正確-hint

這個過程。

在此之前,相同的文件在Android 2.3的設備上播放效果良好,但不會在使用Android 2.2的設備上播放。我不確定,但2.3版本之後,「安全傳輸」的限制可能已被取消。

+0

你能告訴我你是怎麼做到的?我在運行Android 2.2的設備上遇到了同樣的問題 – Farhan

+0

@ Farhan,如果您收到Error(200,-82)PVMFErrContentInvalidForProgressivePlayback,那麼問題在於您的mp4文件。你應該「提示」那個文件。暗示該文件將修復您的moov和mdat標記以實現安全流式傳輸。你應該使用mp4Box工具。不過,我對MP4box的GUI版本做了同樣的事情。這[鏈接](http://stackoverflow.com/questions/6952330/android-mp4-moov-mdat-problem/6980289#6980289)將幫助您使用MP4Box Gui版本 – efeyc

相關問題