无法播放 sdcard 中的音频文件 Android

Cant able to play an audio file from sdcard Android

MediaPlayer mPlayer;

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

日志

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)

我在启动 Mediaplayer 时收到 NullPointerException。我确定文件路径正确并且文件没有损坏。提前致谢。

您可以尝试使用此代码:

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

您是否在清单中添加了以下权限行?

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

尽量不要直接指定路径,使用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();