我是Android开发的新手,我正在尝试从RAW文件夹播放MP4视频但是,尽管我可能会在这里阅读每个答案并在谷歌上浏览了几个小时,但我无法使其正常工作。
我当前的代码(在onCreate()方法上调用)
VideoView vv = (VideoView)findViewById(R.id.video_container);
int vID = getResources().getIdentifier("video1", "raw", getPackageName());
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + vID);
MediaController mc = new MediaController(this);
vv.setMediaController(mc);
vv.setVideoURI(uri);
vv.requestFocus();
vv.start();
(现在视频名称是硬编码的,但它应该从之前的Intent传递;我写它来排除这可能是问题)
在LogCat中,我一直只收到此错误:
Error (1,-2147483648)
这对我来说有点模糊(似乎与很多事情有关),而应用程序只提醒“无法播放此视频”消息,而这就是全部。
我是否需要尝试/捕获一些例外以至少有更好的错误报告?我正在使用的代码等于我在互联网上发现的数十个其他代码,在这里,所有声称它工作正常(并在Eclipse模拟器中播放),没有人使用try / catch;有时候Android开发人员的文档很难理解,所以我真的不知道在哪里以及如何设置这些文档(onPrepare()?)。
视频文件名为“video1.mp4”,位于res / raw文件夹中;它的大小约为使用带有Ubuntu 12.04的Arista Transcoder将10.4 Mb编码成854 x 480 H.264 / AVC的高分辨率mov文件(应用程序是Android等同于Ipad版本)。值得一提的是,转换后的视频在我的电脑上播放得很好。
我正在开发Eclipse Indigo,该应用程序针对平板电脑设备,模拟AVD是1280x800 mdpi平板电脑。我现在没有真正的设备(并且几天都没有),所以我无法测试问题是否只是在模拟器上。
不幸的是,将文件复制到SD卡的可能性是不可能的,从远程服务器获取视频也是如此:应用程序需要附带嵌入的所有视频(根据客户的要求)我可以'知道设备是否有SD卡(我也不知道它是哪种型号)