我正在尝试播放存储在 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。
我的应用程序使用这种方法可以很好地播放网络视频,实际上我正在尝试播放来自网络的流的视频很好。我有多个本地视频,它们都不起作用。
感谢您的任何反馈。