android - Intent.ACTION_VIEW 视频 : external storage video "Sorry, this video cannot be played", 但在普通的安卓播放器中,它是可以播放的

标签 android android-intent android-video-player

所以我正在播放来自外部存储(sdcard)的视频,我在播放视频时遇到了问题,这是我的代码:

Uri uri = Uri.parse(url);
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "video/*");

提示“抱歉,无法播放此视频”,但在普通的android播放器中,是可以播放的。我打印了 url,这就是我得到的:

VideoPlayer url: file:///mnt/sdcard/foldername/video-2012-12-26-21-26--44.mp4

是不是uri的问题?如果不是,你能给我指出正确的方向吗?另外,如果我尝试使用带有点 (.) 的文件夹名称,我会遇到问题吗?

url = file:///mnt/sdcard/Android/data/com.example.project/video-2012-12-26-21-26--44.mp4

谢谢。

编辑:由于我真正的问题没有解决,也没有人愿意回答,我提出了一个新问题: Android: Video is playable from gallery but when I play it using Intent.ACTION_VIEW type video, cannot play

我的问题的部分答案:

问题的发生是因为命名约定。我认为播放器不接受其中包含“--”的文件名。所以我通过更改文件名格式解决了这个问题。

//免责声明:我没有完整的解释和来源,但此信息只是从我的解决方法中推导出来的。

最佳答案

确保您通过 Intent 传递正确的 SD 卡路径。最好的方法是使用 Environment.getExternalStorageDirectory()用于获取 SDCARD 路径而不是传递静态字符串:

intent = new Intent(Intent.ACTION_VIEW);

File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard, "/foldername/video-2012-12-26-21-26-44.mp4");

intent.setDataAndType(Uri.fromFile(file), "video/*");

startActivity(intent);

关于android - Intent.ACTION_VIEW 视频 : external storage video "Sorry, this video cannot be played", 但在普通的安卓播放器中,它是可以播放的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14133140/

相关文章:

android - FlurryAgent.onPageView() 是如何工作的?

java - 从 android 发布 url 以检索数据

android - 分享 Intent 完成后的回调

android - 如何在全屏模式下实现android视频播放器

java - 无法将字节转换为 KB

android - 为什么支持FragmentManager.saveFragmentInstanceState(selectedFragment)!! = 空

android - 键盘以横向模式全屏打开

android - 将 native 应用程序转换为 native android 依赖项/库

android - 如何在android中显示包含来自另一个 Activity 的用户名的欢迎消息?

Android:在我的应用程序中播放 youtube 视频