mediaPlayer.prepareAsync()需要很长时间才能调用onMediaPrepared()方法。仅在Android Nougat设备上会发生这种情况。至于其他版本,它可以正常响应。
这是我的代码:
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.setOnPreparedListener(this);
mediaPlayer.setOnErrorListener(this);
mediaPlayer.setOnBufferingUpdateListener(this);
mediaPlayer.reset();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mediaPlayer.setAudioAttributes(new AudioAttributes.Builder().setLegacyStreamType(AudioManager.STREAM_MUSIC).build());
} else {
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
}
try {
mediaPlayer.setDataSource(uri);
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.prepareAsync();
setAudioAttributes是否有问题?我尝试了以下方法,但是没有运气。
mediaPlayer.setAudioAttributes(new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_MEDIA)
.setLegacyStreamType(AudioManager.STREAM_MUSIC)
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build());
感谢您的时间。