我遇到Android媒体播放器的主要问题,我似乎无法从资源中的原始文件夹播放媒体文件(.mp3)。我有以下代码:
private void playSound(String location) {
try {
Uri mp3 = Uri.parse("android.resource://" + getPackageName()
+ "/raw/" + location);
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(MainActivity.this, mp3);
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// TODO Auto-generated method stub
mp.start();
}
});
mediaPlayer.prepareAsync();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
每次我尝试运行此代码时,我都会在log cat中获得以下内容:
11-26 21:28:55.196: E/MediaPlayer(19441): error (1, -2147483648)
11-26 21:28:55.200: E/MediaPlayer(19441): Error (1,-2147483648)
我也尝试过以下代码:
mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.mp3);
mediaPlayer.start();
但每次运行该代码时,都会出现以下错误:
11-26 21:33:26.765: E/MediaPlayer(19813): Should have subtitle controller already set
我已经调查了这个,似乎Android 5.0和媒体播放器存在问题,但我真的需要一个解决这个问题的方法,到目前为止我没有运气。有没有人遇到过这些问题中的一个或两个?如果有,哪个有最佳解决方案?
感谢。