2011-12-26 6 views
0

私は、すでに市販されているビデオ再生(インタラクティブムービー)を大量に使用するAndroidでアプリケーションを開発しています。Androidビデオの再生に関する問題

問題は、それが小さく解像度の古いモデルで動作しますが、ビデオ再生には、サムスンギャラクシージオ(2.3.3)で動作しないということです。

それは私が手動でデフォルトのメディアプレーヤーでビデオをロードしようと、それはそれを再生することはできませんので、コーデックの問題があるようです。他のメディアプレーヤーは問題ありません。

ビデオが800×480の解像度でMPEG-4(FFmpegの)とハンドブレーキを使用して符号化されます。

これは===============================エラー

12-26 14:04:43.269: E/QCvdec(95): get_parameter: unknown param 0ff7a347 
12-26 14:04:43.269: E/VideoMIO(95): AndroidSurfaceOutput::setParametersSync() VIDEO ROTATION 0 
12-26 14:04:43.269: E/QCvdec(95): Setparameter: unknown param 117440513 
12-26 14:04:43.459: E/QCvdec(95): Omx Flush issued when vdec is not initialized yet. 
12-26 14:04:43.459: E/(95): profile_and_level_indication = 3 
12-26 14:04:43.459: E/(95): video_object_type_indication = 1 
12-26 14:04:43.459: V/PlayerDriver(95): HandleInformationalEvent: UNKNOWN PVMFStatus 
12-26 14:04:43.459: V/PlayerDriver(95): HandleInformationalEvent: type=44 UNHANDLED 
12-26 14:04:43.459: W/MediaPlayer(2705): info/warning (1, 44) 
12-26 14:04:43.459: V/PlayerDriver(95): CommandCompleted 
12-26 14:04:43.459: V/PlayerDriver(95): Completed command PLAYER_PREPARE status=PVMFSuccess 
12-26 14:04:43.459: V/PlayerDriver(95): PLAYER_PREPARE complete mDownloadContextData=0x0, mDataReadyReceived=0 
12-26 14:04:43.459: V/PVPlayer(95): stop 
12-26 14:04:43.459: V/PlayerDriver(95): Send player code: 9 
12-26 14:04:43.459: V/PVPlayer(95): check_for_live_streaming s=0, cancelled=0 
12-26 14:04:43.459: E/QCvdec(95): Omx Flush issued when vdec is not initialized yet. 
12-26 14:04:43.459: E/QCvdec(95): OMXCORE-SM:Recieved command DISABLE (2) 
12-26 14:04:43.459: E/QCvdec(95): Omx Flush issued when vdec is not initialized yet. 
12-26 14:04:43.459: E/QCvdec(95): OMXCORE-SM:Recieved command ENABLE (3) 
12-26 14:04:43.459: E/(95): vdec: failed to allocate pmem arena (10161152 bytes) 
12-26 14:04:43.459: E/QCvdec(95): ERROR!!! vdec_open failed 
12-26 14:04:43.459: E/VideoMIO(95): AndroidSurfaceOutput::setParametersSync() VIDEO ROTATION 0 
12-26 14:04:43.469: E/PVOMXVidDecNode(95): Ln 1458 OMX_EventError nData1 0x0 nData2 0x0 
12-26 14:04:43.469: V/PlayerDriver(95): HandleInformationalEvent: PVMFInfoErrorHandlingStart 
12-26 14:04:43.469: V/PlayerDriver(95): HandleInformationalEvent: type=26 UNHANDLED 
12-26 14:04:43.469: W/MediaPlayer(2705): info/warning (1, 26) 
12-26 14:04:43.469: E/PlayerDriver(95): HandleErrorEvent: PVMFErrProcessing 
12-26 14:04:43.469: E/MediaPlayer(2705): error (1, -18) 
12-26 14:04:43.479: E/QCvdec(95): Omx Flush issued when vdec is not initialized yet. 
12-26 14:04:43.479: W/QCvdec(95): ====================================================================== 
12-26 14:04:43.479: W/QCvdec(95):     Open Max Statistics         
12-26 14:04:43.479: W/QCvdec(95): ====================================================================== 
12-26 14:04:43.479: W/QCvdec(95): empty this buffer rate = 2985.074707 
12-26 14:04:43.479: W/QCvdec(95): empty this buffer total time = 670 
12-26 14:04:43.479: W/QCvdec(95): empty this buffer count = 2 

とlogcatダンプです======================================

は、複数のコーデックをインストールする方法はありますデフォルトプレーヤーのデバイスで

ご協力いただきますようお願い申し上げます。ありがとうございました

+0

ビデオを表示するのにビデオビューを使用していますか? –

+0

パフォーマンス上の理由からSurfaceViewで直接MediaPlayerを使用しています – Pasman

答えて

2

古いAndroid 2.2デバイスでも同様の問題がありました。 VideoViewは何らかの理由でビデオを正しいサイズに拡大することができませんでした。私たちは、デバイスの解像度に合うようにビデオ解像度を下げました。

三星銀河ジオは320x480のディスプレイを持って、あなたは、800×480のビデオを持っています。たぶんビデオ解像度を下げて、サイズ変更せずに320x480ディスプレイに収まるようにすることができます(問題があるかどうかをテストするだけです)。

ビデオをベースラインプロファイルでエンコードしましたか?これは、正しいビデオ再生のために一部のデバイスで必要となります。詳細については、Android media formatsを参照してください。

また、OnErrorListenerをメディアプレーヤーに追加することもできます。たぶん有用なエラーメッセージが表示されるかもしれません:)

+0

実際に問題はビデオの解像度です...私はそれを縮小して動作します。他の「弱い」電話機が自動的にサイズを減らすことに問題がないのはちょっと不思議です。これは、縮小された別の動画を使ってapkのサイズを大きくする必要があることを意味します。ありがとうございました。 – Pasman

+0

私はライブストリーミングビデオに関して同じ問題を抱えています。私のhttp URLはrstp URLにリダイレクトされます.VideoViewまたはMediaPlayerにリダイレクトURLを渡して> = 2.3であれば正常ですが、ライブストリーミングビデオは欲望2.2とGalaxy S 2.2を使用して、ベースラインプロファイルでビデオをエンコードする方法のアンドロイドコードの例を教えてください。 Galaxyの2.3.3およびNexus 4.01でURLにヒットすると、ライブストリーミングサーバーが応答します。希望の2.2またはGalaxy S 2.2のURLにヒットした場合、サーバーは(logcat情報ごとに)応答しません。 –

関連する問題