2015-04-20 120 views
0
MediaPlayer mPlayer; 

String path = /storage/emulated/0/Audio/1429167704744.wav; 
mPlayer = new MediaPlayer(); 
mPlayer = MediaPlayer.create(getActivity(), Uri.parse(path)); 
mPlayer.start(); 

日志广东话能够从SD卡的Android

04-20 13:04:09.667: E/AndroidRuntime(28202): Process: com.abs_ind.audio, PID: 28202 04-20 13:04:09.667: E/AndroidRuntime(28202): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference 
04-20 13:04:09.667: E/AndroidRuntime(28202):at com.bb_ind.test.Browse_Fragment.show_dialog(Browse_Fragment.java:71) 

播放音频文件我得到NullPointerException当我启动媒体播放器。我确定文件路径是正确的,文件没有损坏。提前致谢 。

+0

可能getActivity()(即上下文是空的)。请检查上下文。 – Raghavendra

+0

http://stackoverflow.com/questions/9528238/playing-audio-file-from-sdcard的副本 – katmanco

回答

1

尽量不要直接指定路径,使用的Environment助手,让您的文件路径。在清单文件中声明权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

然后尝试下面的代码来播放您的音频文件。

final String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC) 
      + File.separator + "1429167704744.wav"; 

    MediaPlayer mediaPlayer = MediaPlayer.create(this, Uri.parse(path)); 
    try { 
     mediaPlayer.prepare(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    mediaPlayer.start(); 
0

您可以尝试使用此代码:

MediaPlayer mp = new MediaPlayer(); mp.setDataSource("/mnt/sdcard/yourdirectory/youraudiofile.wav"); mp.prepare(); mp.start();

而且你在你的清单中添加以下权限行?

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>