15

我想在我的 Android 应用程序中播放我的资产或原始文件夹中的VideoView视频,但由于无法播放视频而出现错误,请任何人给我一个解决方案。

这是我使用的代码

VideoView vd = (VideoView)findViewById(R.id.Video);         
Uri uri = Uri.parse("android.resource:"  + R.raw.video);
MediaController mc = new MediaController(this);
vd.setMediaController(mc);
vd.setVideoURI(uri); 
vd.start();
4

6 回答 6

34

需要注意的几点:

  1. 您必须将视频复制到项目的res/raw文件夹中。
  2. 它必须采用受支持的格式(3gp、wmv、mp4)并在其文件名中使用小写、数字、下划线和点命名:my_video_file.mp4
  3. 当您在代码中使用此资源时,您将通过生成的 R 静态资源进行引用 - 它将删除文件扩展名:R.raw.my_video_file
  4. Activity 类有一个帮助方法 getPackageName() ,您的代码可以在构建视频的正确 URI 时使用该方法。
VideoView vv = (VideoView)this.findViewById(R.id.videoView)
String uri = "android.resource://" + getPackageName() + "/" + R.raw.my_video_file;
vv.setVideoURI(Uri.parse(uri));
vv.start();

这里有更多关于这方面的信息。

于 2011-02-01T04:36:02.650 回答
7

您必须在 uri 中包含包名称:

  Uri uri = Uri.parse("android.resource://[package]/raw/video")

或者

  Uri uri = Uri.parse("android.resource://[package]/"+R.raw.video);

另外,请查看这些示例

于 2010-09-19T16:35:17.517 回答
2

VideoView 有很多方法出错!主要是因为logcat没有给你任何帮助,总是报UNKNOWN的错误。

我发现这个链接是迄今为止最好的入门方式......完整的描述,所以你不会出错。感谢作者...

http://androidexample.com/Play_Video_File_-_Android_Example/index.php?view=article_discription&aid=124&aaid=144

于 2014-03-26T20:30:07.763 回答
0

尝试:

   AssetFileDescriptor afd = getAssets().openFd(fileName);
   player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength());
于 2013-11-11T10:18:12.077 回答
0

确保写入不带扩展名的文件视频名称。

于 2013-12-19T10:47:05.307 回答
0

/resource/raw/当我们在or中包含视频资源时assets/,默认情况下,它会查找.mp4格式,它不会接受.wmv文件。如果您从外部位置(如:)读取视频文件,/mnt/sdcard/demo.wmv那么它将接受它们。

于 2013-03-08T07:39:18.973 回答