android - 从外部存储播放 3gp 文件时,AndroidMedia Player 中出现错误 (1,-2147483648),该文件首先使用 MediaRecorder 录制
问题描述
获取 E/MediaPlayer: Error (1,-2147483648) 时尝试播放 android MediaPlayer
。已获得许可,文件格式为 3gp。我一直在尝试在我的代码中应用对此主题的答案,但没有解决问题。
player = new MediaPlayer();
File file = new File(filePath);
file.setReadable(true,false);
FileInputStream inputStream = new FileInputStream(file);
player.setDataSource(inputStream.getFD());
inputStream.close();
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
flag=true;
}
});
player.prepareAsync();
解决方案
改变线的顺序如下
player = new MediaPlayer();
File file = new File(filePath);
file.setReadable(true,false);
FileInputStream inputStream = new FileInputStream(file);
player.setDataSource(inputStream.getFD());
inputStream.close();
player.prepareAsync();
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
flag=true;
}
});
推荐阅读
- javascript - knex.js 查询“承诺”何时执行/解决?
- python - 尽管以下两个函数的时间复杂度似乎相似,但为什么性能却存在巨大差异?
- tcp - 如何确定我是否需要来自 Rust io::Error 的新 TCP 连接?
- php - Stripe/Laravel - 更新条带客户导致 GET 方法错误
- react-native - 为什么我的标题的背景颜色不适用?
- sql-server - 如何将列值显示为行并将数据与其他表连接?
- tensorflow - 关于如何在 TPU 云上运行自定义 keras 代码
- json - JOLT 规范 - 将数组转置为类
- android - 为什么我的 android 主屏幕小部件变慢?
- pipe - 找不到管道“翻译” Ionic 4