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)

我是否使用错误的语法来输入本地视频?我浏览了我的手机,我可以验证视频是否存在,我已经将它移到我的桌面上并且它可以播放。我File使用 Uri 数据创建了一个并调用exists()它,它返回 true。

我的应用程序使用这种方法可以很好地播放网络视频,实际上我正在尝试播放来自网络的流的视频很好。我有多个本地视频,它们都不起作用。

感谢您的任何反馈。

4

3 回答 3

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 回答
0

不知道为什么我无法从 SD 卡播放视频,但我找到了解决方案。

我没有提供视频的文件路径,而是使用Uri.withAppendedParts(Video.Media.EXTERNAL_CONTENT_URI, Integer.toString(id));. 这有效,现在正在播放视频。

于 2012-03-30T19:06:50.623 回答
0

我发现以下更好的解决方案可以解决这个问题。请看一下。

Intent.ACTION_VIEW 视频:外部存储视频“抱歉,此视频无法播放”,但在普通安卓播放器中可以播放

于 2014-01-09T05:41:10.477 回答