今天做android的一个音乐播放器时,当播放列表里的歌曲时,总是报一个错误:PVMFErrNotSupported
Prepare failed.: status=0x1

检查了半天也没看出是哪里的错误;后来经过查阅资料发现里面有一段代码:
try{

mp = new MediaPlayer();

mp.setDataSource(somePathToAudioFile);

mp.prepare();

mp.start();

}catch(Exception e){
}
里面mp.setDataSource(somePathToAudioFile);这个方法中调用的是setDataSource(String);在Java中有一个FileDescriptor;我们可以通过getFD()方法得到一个FileDescriptor;以避免这些错误;

代码修改后如下:
String audioFilePath = getFilesDir().getAbsolutePath() + File.separator + "aa.mp4";

try {


File file = new File(audioFilePath);
FileInputStream fis = new FileInputStream(file);
mediaPlayer.setDataSource(fis.getFD());
mediaPlayer.prepare();
mediaPlayer.start();


} catch(FileNotFoundException e){

} catch (IllegalArgumentException e) {

} catch (IllegalStateException e) {

} catch (IOException e) {

}

经过测试通过;

更多相关文章

  1. Android .so abi兼容,通用armeabi-v7a和arm64-v8a架构的方法
  2. Android 首选网络模式默认值的修改方法
  3. Android代码内存优化建议-OnTrimMemory优化
  4. Android学习笔记-Android非布局activity中布局文件及控件加载方
  5. Android基于OpenGL的GLSurfaceView创建一个Activity实现方法
  6. 【转】Android-Action Bar使用方法
  7. Gears Android WIFI/基站定位源代码分析

随机推荐

  1. Sentence-BERT: 一种能快速计算句子相似
  2. 【MOS】Limitations of the Oracle Cost
  3. memcached程序端口监控脚本
  4. PKG_COLLECTION_LHR 存储过程或函数返回
  5. cront计划任务的详细讲解
  6. 【MOS】RAC 环境中 gc block lost 和私网
  7. Iptables 规则用法小结
  8. MySQL优化
  9. Java泛型通配符 ? 与 T 的区别
  10. windows平台下编辑的内容传到linux平台出