1

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)

ローカル ビデオのフィードに間違った構文を使用していませんか? 携帯電話をブラウズしたところ、ビデオがそこにあることを確認できました。デスクトップに移動したところ、再生されました。FileUri データを使用してを作成して呼び出すexists()と、true が返されます。

私のアプリは、この方法を使用して Web ビデオを正常に再生します。実際、Web からストリームを再生しようとしているビデオは正常に再生されます。複数のローカル ビデオがありますが、どれも機能しません。

フィードバックをお寄せいただきありがとうございます。

4

3 に答える 3

0

SD カードからビデオを再生できなかった理由はわかりませんが、解決策を見つけました。

動画へのファイル パスを指定する代わりに、Uri.withAppendedParts(Video.Media.EXTERNAL_CONTENT_URI, Integer.toString(id));. これは機能し、現在ビデオを再生しています。

于 2012-03-30T19:06:50.623 に答える
0

この問題のより良い解決策を見つけました。ご覧ください。

Intent.ACTION_VIEW video: 外部ストレージ動画「申し訳ありませんが、この動画は再生できません」ですが、通常のandroidプレーヤーでは再生可能です

于 2014-01-09T05:41:10.477 に答える
0

これを試して :

   Uri name = Uri.parse(Environment.getExternalStorageDirectory().getPath()+"/Test_Movie.m4v");  
   Intent intent = new Intent(Intent.ACTION_VIEW);
   String type = "video/mp4";
   intent.setDataAndType(name, type);
   startActivity(intent);
于 2012-03-30T17:43:17.303 に答える