MediaPlayer无法在Android中播放音频

时间:2016-03-24 10:00:51

标签: java android audio android-mediaplayer

今天,我在Android上播放音乐应用程序。

使用MediaPlayer播放音频文件时失败了;它无法播放任何文件音频。 这个异常会像登录一样记录cat:

  

E / MediaPlayer:错误(1,-2147483648)

     

W / System.err:java.io.IOException:准备失败:状态= 0x1

     

W / System.err:在android.media.MediaPlayer.prepare(原生方法)

此代码显示更多信息;异常发生在以下行:

mediaPlayer.prepare();

此类包含以下行:

public void playAudio() {
    Intent intent = getIntent();
    fileName = (TextView) findViewById(R.id.file);
    playBtn = (ImageButton) findViewById(R.id.play);
    String chooseFiles = intent.getStringExtra("fileName");

    try {
        mediaPlayer = new android.media.MediaPlayer();
        mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mediaPlayer.setDataSource(chooseFiles);
        mediaPlayer.prepare();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    fileName.setText(fName.substring(chooseFiles.lastIndexOf("/") + 1));
    mediaPlayer.start();
    timeElapsed = mediaPlayer.getCurrentPosition();
}

我在AndroidManifest.xml中添加了权限:

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

如何解决这个问题?非常感谢你。

1 个答案:

答案 0 :(得分:0)

MediaPlayer无法访问您的文件,因为它无法找到它,在这种情况下您应该尝试将"file://"附加到您的路径

file:///storage/sdcard0/audio/2016-03-24 15.02.58.mp4

或者如果它是权限问题(很可能是因为你有这个错误(1, -2147483648))传递像这样的文件描述符

File file = new File(chooseFiles);
FileInputStream inputStream = new FileInputStream(file);
mediaPlayer.setDataSource(inputStream.getFD());
inputStream.close();