我是 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 Developer 文档有时很难遵循,所以我真的不知道在哪里以及如何放置这些(onPrepare()?)。
视频文件名为“video1.mp4”,放在 res/raw 文件夹中;它的大小约为。10.4 Mb 并且使用带有 Ubuntu 12.04 的 Arista Transcoder 将高分辨率 mov 文件(应用程序是相当于 Ipad 版本的 Android 应用程序)编码为 854 x 480 H.264 / AVC。值得一提的是,转换后的视频在我的电脑上可以正常播放。
我在 Eclipse Indigo 上开发,该应用程序针对平板电脑设备,模拟的 AVD 是 1280x800 mdpi 平板电脑。我现在没有真正的设备(并且几天都不会),所以我无法测试问题是否只是在模拟器上。
不幸的是,将文件复制到 SD 卡的可能性是不可能的,从远程服务器获取视频也是如此:应用程序需要附带所有嵌入的视频(根据客户的要求),我不知道是否该设备将有或没有 SD 卡(我也不知道它是哪种型号)