Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打算从SD卡上的文件在Android上播放视频_Android_File_Video_Android Intent_Uri - Fatal编程技术网

打算从SD卡上的文件在Android上播放视频

打算从SD卡上的文件在Android上播放视频,android,file,video,android-intent,uri,Android,File,Video,Android Intent,Uri,我正在尝试在手机的SD驱动器上加载播放视频文件的意图。我不确定我做错了什么 String movieurl = Environment.getExternalStorageDirectory() + "/Videos/Wildlife.wmv"; Intent intentToPlayVideo = new Intent(Intent.ACTION_VIEW); intentToPlayVideo.setDataAndType(Uri.parse(movieurl), "video/*");

我正在尝试在手机的SD驱动器上加载播放视频文件的意图。我不确定我做错了什么

String movieurl = Environment.getExternalStorageDirectory() + "/Videos/Wildlife.wmv";

Intent intentToPlayVideo = new Intent(Intent.ACTION_VIEW);
intentToPlayVideo.setDataAndType(Uri.parse(movieurl), "video/*");
startActivity(intentToPlayVideo);
我收到一个错误文件,无法显示或播放

有什么想法吗

注: 我也试过:

MediaPlayer mp = new MediaPlayer();
mp.setDataSource(movieurl);
mp.prepare();
mp.start();

出现异常时失败:java.io.IOException:Prepare failed.:status=0x1

WMV文件是否在标准媒体播放器中自行播放?如果您继续出现错误,我怀疑该文件可能无法播放。

请尝试以下操作:

FileInputStream fis = new FileInputStream(new File(movieurl));
MediaPlayer mp = new MediaPlayer();
mediaPlayer.setDataSource(fis.getFD());
fis.close();
mp.prepare();
mp.start();
我想出来了

结果表明,在Droid X2上,Environment.getExternalStorageDirectory返回/mnt/sdcard,它实际上不是SD卡

通过执行File.listFiles找到了这个问题

Droid X2上的实际SD卡目录为/mnt/sdcard-ext


谢谢你的帮助

你能调试你的电影URL吗?就记录下来吧?它可能有一个额外的文件分隔符或其他东西是的,我可以,它显示为:/mnt/sdcard/Videos/wivel。wmv@J记者:这只是一个偶然的机会,但这可能是一个案件敏感性问题吗?换句话说,“视频”目录的拼写是否与此完全相同?还有“Wildlifes.wmv”?是的,有。我去了文件>>SD卡>>视频,点击了那里的文件,它正常播放。我发现这让我不安我不是怀疑你,只是让我不安。Environment.getExternalStorageDirectory的要点在于检索SD卡的路径,而不管设备是什么。它提供了一个不正确的路径,这让我担心该方法的完整性。是的,我完全同意。。。特别是因为返回的路径意味着它是SD卡!这里的更多信息:@John@J J-这是来自环境文档的引用。getExternalStorageDirectory…注意:不要被这里的external这个词弄糊涂了。此目录最好被视为媒体/共享存储。它是一个文件系统,可以保存相对大量的数据,并且在所有应用程序之间共享,但不强制执行权限。传统上,这是一个SD卡,但它也可以作为设备中的内置存储器来实现,该设备不同于受保护的内部存储器,并且可以作为文件系统安装在计算机上。另请参见后续评论…在具有多个外部存储目录(如安全应用程序存储和可装载共享存储)的设备中,此目录表示用户将与之交互的主要外部存储。请看-这是一个很好的记录。感谢您的跟进。如果有文件记录,我想没什么好担心的。好的研究!