Android - MediaPlayer error: attachnewplayer called in state 64
Android - MediaPlayer error: attachnewplayer called in state 64
我在下面 post 创建简单的音乐播放器,但是从列表中选择任何歌曲或从 MediaController 按 prev/next 会出现以下错误。我正在使用 Oreo (Andoid 8.1.0 API 27).
public void playSong()
{
Song playSong = songs.get(songPosn);
songTitle=playSong.getTitle();
long currSong = playSong.getID();
Uri trackUri = ContentUris.withAppendedId(android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,currSong);
try
{
player.setDataSource(getApplicationContext(), trackUri);
player.prepareAsync();
}
catch(Exception e){
Log.e("MUSIC SERVICE", "Error setting data source", e);
}
}
错误MediaPlayer error: attachnewplayer called in state 64
您必须重置播放器,还必须设置 setAudioStreamType,因此您的代码如下所示
try
{
player.reset();
player.setDataSource(getApplicationContext(), trackUri);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.prepareAsync();
}
我认为像这样的问题的关键是让人们知道状态列表:
- 1: ?
- 64: ?
- 128:回放完成。我遇到 128,播放完成后,在调用 setDataSource 之前不会调用停止和重置。我知道停止、重置、setDataSource、prepareAsync、开始的顺序是有效的。
- ?: ?
我在下面 post 创建简单的音乐播放器,但是从列表中选择任何歌曲或从 MediaController 按 prev/next 会出现以下错误。我正在使用 Oreo (Andoid 8.1.0 API 27).
public void playSong()
{
Song playSong = songs.get(songPosn);
songTitle=playSong.getTitle();
long currSong = playSong.getID();
Uri trackUri = ContentUris.withAppendedId(android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,currSong);
try
{
player.setDataSource(getApplicationContext(), trackUri);
player.prepareAsync();
}
catch(Exception e){
Log.e("MUSIC SERVICE", "Error setting data source", e);
}
}
错误MediaPlayer error: attachnewplayer called in state 64
您必须重置播放器,还必须设置 setAudioStreamType,因此您的代码如下所示
try
{
player.reset();
player.setDataSource(getApplicationContext(), trackUri);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.prepareAsync();
}
我认为像这样的问题的关键是让人们知道状态列表:
- 1: ?
- 64: ?
- 128:回放完成。我遇到 128,播放完成后,在调用 setDataSource 之前不会调用停止和重置。我知道停止、重置、setDataSource、prepareAsync、开始的顺序是有效的。
- ?: ?