Android内部资源包的路径

use*_*295 3 resources android path media-player

我尝试将视频路径添加到Android示例项目 - MediaPlayerDemo

我可以在存储在SD卡中时播放视频,路径为"file:///sdcard/dcim/a.m4v"

但是当它存储在res/drawable中时我无法播放视频.路径是"android.resource://"+ this.getPackageName()+"/"+ R.drawable.a

我可以在调试模式下读取视频的ID,但是无法重放视频.

怎么解决?

更新

感谢您的回复,到目前为止我尝试过:

  1. 将视频放入资源,将路径设置为"file:///android_asset/a.m4v".
  2. 将视频放入raw,设置路径为("android.resource://"+ this.getPackageName()+"/"+ R.raw.a)或("android.resource://"+ this.getPackageName( )+"/ raw/a)

但他们都不能播放视频.我的视频是1.8Mb,这有关系吗?

Yug*_*abu 6

res文件夹中创建一个名为raw的新文件夹,如果已创建则将其保留.将可播放的视频文件(例如myvideo.mp4)复制到原始文件夹.在您的应用中使用以下代码.

String uriPath = "android.resource://"+getPackageName()+"/raw/myvideo";
Uri uri = Uri.parse(uriPath);
mVideoView.setVideoURI(uri);
Run Code Online (Sandbox Code Playgroud)

我测试过,它为我工作.如果视频可以从SD卡播放,那么它只会从原始文件夹播放,否则会显示一个对话框显示无法播放视频.

尝试一下,让我知道发生了什么.