2010-11-23 6 views
0

私はビデオをポップアップして再生しようとしています。最初のURI(これは以下のコードでコメントアウトされています)を使用するとうまくいきますが、リソースから2番目のURIを使用しようとすると、次のエラーが発生します:リソースからビデオファイルを再生するにはどうすればよいですか?

 
ERROR/AndroidRuntime(1052): android.content.ActivityNotFoundException: No Activity found to handle Intent { dat=android.resource://com.slamdunksoftware.presentation/2130968576 typ=video/* } 

エラーの調査から、マニフェストでアクティビティを宣言する必要があるようですが、ここに該当するかどうかはわかりません。誰かが私を正しい方向に向けることができますか?

Intent in = new Intent(Intent.ACTION_VIEW); 
//Uri uri = Uri.parse(Environment.getExternalStorageDirectory().toString() + "/page4a.m4v");   
Uri uri = Uri.parse("android.resource://com.slamdunksoftware.presentation/" + R.raw.page4a); 

in.setDataAndType(uri, "video/*"); 
startActivity(in); 
+0

あなたはこれを言い替えるすることをお勧めします「どのように私は、リソースからのビデオファイルを再生することができますか?」 ActivityNotFound例外は、ここでは赤いひねりのビットです。 –

答えて

1

いいえ、マニフェストに何も宣言する必要はありません。マニフェストファイルには自分だけがActivitiesと宣言しています。上記の場合、ビデオを再生し、OSに依存してプログラムを提供しようとしています。あなたが経験したように、すべてのデバイス(またはエミュレータ)がビデオを再生するためのアプリを持っているわけではありません。だから、あなたがここでできる最善の動画を再生するには、独自のActivityを作成します

How to play video and audio on Android

+0

クイックアンサーに感謝します。最初のケース(コメントアウトされたuri)では動作するが、2番目のケースでは動作しない理由は何ですか? – Dittimon

+0

システム内のインテントフィルタが、2番目のケースで使用しているURIスキーム(android.resource://)を認識しないためです。 –

関連する問題