gpt4 book ai didi

Android MediaPlayer 在 2.1 上抛出 "Prepare failed.: status=0x1",适用于 2.2

转载 作者:IT老高 更新时间:2023-10-28 21:48:10 32 4
gpt4 key购买 nike

我一直在努力让 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 a error or info PVMFErrResourceConfiguration

相同的代码在 Froyo (2.2) 中完美运行。视频本身在视频播放器应用程序中播放良好。有没有人有可能有助于解决这个问题的有用提示?

编辑:仍然没有解决方案——确实是非常令人沮丧的问题。但是,我发现通过创建 VideoView 并设置原始视频的 URI 可以工作。这很令人费解,因为通过 MediaPlayer 类发送完全相同的 URI 会抛出异常。

最佳答案

这是我的解决方案:

MediaPlayer mediaPlayer = new MediaPlayer();
FileInputStream fis = null;
try {
File directory = new File("android.resource://com.example.myapp/raw/");
fis = new FileInputStream(directory);
mediaPlayer.setDataSource(fis.getFD());
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepare();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException ignore) {
}
}

}

关于Android MediaPlayer 在 2.1 上抛出 "Prepare failed.: status=0x1",适用于 2.2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761305/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com