Android 如何从资产文件夹加载视频?(使用VideoView播放)

Android 如何从资产文件夹加载视频?(使用VideoView播放),android,mp4,assets,Android,Mp4,Assets,我需要从资产文件夹中打开一个mp4视频,并使用VideoView播放它 我尝试过这两种选择,但都不起作用 mVideoView.setVideoPath("file:///android_asset/videos.mp4"); mVideoView.requestFocus(); mVideoView.start(); 而且 String uriPath = "file:///android_asset/videos.mp4"; Uri uri = Uri.parse(uriPath); mV

我需要从资产文件夹中打开一个mp4视频,并使用VideoView播放它

我尝试过这两种选择,但都不起作用

mVideoView.setVideoPath("file:///android_asset/videos.mp4");
mVideoView.requestFocus();
mVideoView.start();
而且

String uriPath = "file:///android_asset/videos.mp4";
Uri uri = Uri.parse(uriPath);
mVideoView.setVideoURI(uri);
mVideoView.requestFocus();
mVideoView.start();
这些选项不起作用,但如果我尝试从SD卡打开视频,效果会很好,那么问题是当我尝试从“资源”文件夹加载视频时

我做错了什么


谢谢

我不知道如何从资产文件夹加载视频。但我知道如何从/res/raw/文件夹加载它们:

String uriPath = "android.resource://yourapplicationpackage/raw/videofilenamewithoutextension";
Uri uri = Uri.parse(uriPath);
video.setVideoURI(uri);

已编辑

尝试:

无法从
\assets
播放.mp4文件,必须从
\raw
文件夹加载该文件。 例如:

如果在
/raw
文件夹中有一个名为
video.mp4
的文件:

String fileName = "android.resource://"+  getPackageName() + "/raw/video";
VideoView vv = (VideoView) this.findViewById(R.id.surface);
vv.setVideoURI(Uri.parse(fileName));
vv.start();

我不使用原始文件夹,我使用资产只需将原始部分更改为**资产**。。。。很晚了,但是b对现在正在观看的人有帮助吗?您好,我已经使用VideoView从原始文件夹播放了视频,但视频并没有在低于2.3的低版本中播放。它向我显示错误“无法播放视频”请告诉我问题在哪里,因为视频在其他版本中播放。@NidhiGondhia请尝试以下操作:String uriPath=“android.resource://“+getPackageName()+”/“+R.raw.my_Video_文件;包名是com.abc.xyz还是com/abc/xyz?我没有使用MediaController,因为我需要隐藏videoview的控件。。。。然后我不知道如何为videoView对象分配文件描述符。。。。当您第一次询问MediaController的问题时,类型MediaController的方法setDataSource(FileDescriptor,long,long)未定义。现在我搞不懂你的代码到底是什么样的我现在试着用MC。。。方法setDataSource(FileDescriptor,long,long)对于MediaControllerI类型是未定义的。我正在尝试使您的代码正常工作,但我不能,我不明白如何用我的代码来填充您的代码。。。。我不知道我做错了什么。我编辑了我的问题,检查它。经过几个小时的搜索,这是唯一解决我问题的答案!!非常感谢你!问题是关于
资产
。不是
raw
。这是不可能的,所以我给出了另一个选项。这是可能的!刚给asset:///youvideo.mp4
String fileName = "android.resource://"+  getPackageName() + "/raw/video";
VideoView vv = (VideoView) this.findViewById(R.id.surface);
vv.setVideoURI(Uri.parse(fileName));
vv.start();