SD カードに保存されているビデオを再生しようとすると、毎回エラーが発生します。最初にコードを投稿し、その後にスタック トレースを投稿します。
protected void launchVideo( Uri data ) {
try {
Intent intent = new Intent( Intent.ACTION_VIEW );
intent.setDataAndType( data, "video/*" );
startActivity( intent );
}
catch (ActivityNotFoundException e) {
e.printStackTrace();
showErrorDialog( "Unable to open video." );
}
}
渡される Uri の例:/mnt/sdcard/DCIM/Camera/VID_20120312_152550.mp4
私が得るたびにActivityNotFoundException
。スタック トレースは次のとおりです。
03-30 12:23:17.890: W/System.err(22867): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=/mnt/sdcard/Default/18421.mp4 typ=video/* }
03-30 12:23:17.890: W/System.err(22867): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1512)
03-30 12:23:17.890: W/System.err(22867): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384)
03-30 12:23:17.890: W/System.err(22867): at android.app.Activity.startActivityForResult(Activity.java:3190)
03-30 12:23:17.898: W/System.err(22867): at android.support.v4.app.FragmentActivity.startActivityFromFragment(FragmentActivity.java:678)
03-30 12:23:17.898: W/System.err(22867): at android.support.v4.app.Fragment.startActivity(Fragment.java:783)
03-30 12:23:17.898: W/System.err(22867): at com.my.app.GalleryFragment.launchVideo(GalleryFragment.java:222)
ローカル ビデオのフィードに間違った構文を使用していませんか? 携帯電話をブラウズしたところ、ビデオがそこにあることを確認できました。デスクトップに移動したところ、再生されました。File
Uri データを使用してを作成して呼び出すexists()
と、true が返されます。
私のアプリは、この方法を使用して Web ビデオを正常に再生します。実際、Web からストリームを再生しようとしているビデオは正常に再生されます。複数のローカル ビデオがありますが、どれも機能しません。
フィードバックをお寄せいただきありがとうございます。