Android:视频可以从画廊播放但是当我使用Intent.ACTION_VIEW类型视频播放时,无法播放

Mar*_*arl 3 video android android-intent

这是我原来的问题

我已经在那里实现了答案,但问题仍然存在.

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

Uri uri = Uri.parse(url);
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "video/*");
Run Code Online (Sandbox Code Playgroud)

它提示"抱歉,此视频无法播放",但在图库中,它是可播放的.我打印了网址,这就是我得到的:

VideoPlayer url: file:///mnt/sdcard/foldername/video-2012-12-26-21-26--44.mp4
Run Code Online (Sandbox Code Playgroud)

该文件存在于我得到的答案中.但问题仍然存在,我不知道出了什么问题.

任何见解都表示赞赏.谢谢

编辑:对于那些在第一个问题中没有看到答案的人.我已经实现了这个:

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);
Run Code Online (Sandbox Code Playgroud)

该文件存在,因为我已经检查过它.我想知道文件命名约定是否存在问题.

此外,我正在调试我的设备,三星Galaxy Ace,Android 2.3.6,编译4.2 sdk.

编辑2:我已经尝试将视频重命名为更简单的视频,现在视频正常工作,我的猜测是该文件具有文件名长度限制或命名约定.

Rot*_*art 5

这段代码来自我制作的应用程序,试试看.

Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);
            intent.setDataAndType(
                    Uri.parse("file://"+ file.getAbsolutePath()),
                    "video/*");
Run Code Online (Sandbox Code Playgroud)