我想从我的资产或原始文件夹播放video

我想从我的资产或原始文件夹在我的Android应用程序中使用VideoView播放video我收到错误,video不能播放,请任何人都给我一个解决scheme。

这是我使用的代码

 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(); 

  • 我想从我的资源或原始文件夹中播放video
  • 在Android中获取videoView的mediaPlayer
  • 使用FFMPEG和JNI压缩video
  • 在videoView:Android v 4.2.1中播放video时出现java.lang.StringIndexOutOfBoundsException
  • 如何在Android的VideoView中隐藏控件?
  • Android中的导航抽屉和VideoView
  • Android是否支持缩放video?
  • Android:如何从资产中播放video?
  • 有几件事要注意:

    1. 您必须将video复制到项目的res / raw文件夹中。
    2. 它必须采用支持的格式(3gp,wmv,mp4),并在其文件名中以小写,数字,下划线和点命名: my_video_file.mp4
    3. 当你在代码中使用这个资源时,你将通过生成的R静态引用来引用 – 它将会删除文件扩展名: R.raw.my_video_file
    4. Activity类有一个助手方法getPackageName(),当你的video构build正确的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(); 

    这里有更多的信息。

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

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

    要么

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

    另外,看看这些例子 。

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

    我发现这个链接是迄今为止最好的开始…完整的描述,所以你不能出错。 感谢作者…

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

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

    尝试:

      AssetFileDescriptor afd = getAssets().openFd(fileName); player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength()); 

    确保写入没有扩展名的文件video名称。