MediaPlayer mediaPlayer = null; System.out.println("---播放assest的资源文件----");
AssetManager assetManager = this.getAssets();
try {
AssetFileDescriptor fileDescriptor = assetManager
.openFd("/assets/mario.mid");
mediaPlayer = new MediaPlayer();
mediaPlayer
.setDataSource(fileDescriptor.getFileDescriptor(),
fileDescriptor.getStartOffset(), fileDescriptor
.getLength()); mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
一直报空指针,不知道怎么回事,路径绝对没有错,就不知道怎么回事,是不是要添加什么,求大神帮助小弟

解决方案 »

  1.   

    debug一下不就知道了吗?
    setDataSource可以只设置第一个参数fd,后面的参数不需要设置。
      

  2.   

    原因是openFd不需要“/assets/”。
    .openFd("/assets/mario.mid");
    修改
    .openFd("mario.mid");
      

  3.   

    assetManager 默认引用的就是/assets包名下的    所以LS给出了正确的修改方式   最好根据日志分析  求助的时候  也最好把错误日志贴出啦