我只是想尝试一个简单的三秒WAV文件,我尝试的一切似乎给了我一些奇怪的错误。我已经在这里工作了大约半个小时,所有其他在线解决方案都给我带来了更多错误。
.wav位于/res/raw/
目录中,为1.17MB,2822kbps,长度约为3秒。
代码:
MediaPlayer mp = new MediaPlayer();
try {
FileDescriptor fd=getApplicationContext().getResources().openRawResourceFd(R.raw.flipwav).getFileDescriptor();
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource(fd);
mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer player) {
player.start();
}
});
mp.prepare();
} catch (Exception e) {
e.printStackTrace();
}
我收到此错误:
E/MediaPlayer: error (1, -2147483648)
I/System.out: java.io.IOException: Prepare failed.: status=0x1
我尝试将mp.prepare()
更改为mp.prepareAsync()
,但会发生这种情况:
E/MediaPlayer: error (1, -2147483648)
我的代码或文件本身有问题吗?我尝试了多个文件,包括一个mp3,结果总是一样的。我正在使用带有Android Studio的Windows 10计算机。