今天,我在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" />
如何解决这个问题?非常感谢你。
答案 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();