【发布时间】:2011-04-15 05:57:43
【问题描述】:
我一直在努力让 MediaPlayer 类尝试在 Android 2.1 上播放 h.264 编码的视频。我的代码比较简单:
AssetFileDescriptor fileDescriptor = getResources().openRawResourceFd(R.raw.my_movie);
introMoviePlayer = new MediaPlayer();
introMoviePlayer.setDataSource(fileDescriptor.getFileDescriptor(), fileDescriptor.getStartOffset(), fileDescriptor.getDeclaredLength());
introMoviePlayer.prepare();
这总是在prepare() 处引发异常,文本为java.io.IOException: Prepare failed.: status=0x1。我通过使用带有 URI 的 MediaPlayer.create() 获得了更多信息,该 URI 也会抛出 prepare(),它实际上由 MediaPlayer.create() 调用,消息为 Command PLAYER_PREPARE completed with an error or info PVMFErrResourceConfiguration。
相同的代码在 Froyo (2.2) 中完美运行。视频本身在视频播放器应用程序中播放良好。有没有人有可能有助于解决这个问题的有用提示?
编辑:仍然没有解决方案——确实是非常令人沮丧的问题。但是,我发现通过创建 VideoView 并设置原始视频的 URI 可以正常工作。这很令人费解,因为通过 MediaPlayer 类发送完全相同的 URI 会抛出异常。
【问题讨论】:
-
如果您将文件存储在 SD 卡中并通过自己的路径,您是否尝试过该代码?
-
为时已晚,但我猜 mediaplayer 的构造函数有一个需要 resourceId 的重载
-
就我而言,我在 url 信息所在的网址上进行了 Gzip 压缩。压缩的媒体文件可能无法在 android 上解码。
标签: android media-player