Android - MediaPlayer 错误:attachnewplayer 在状态 64 中调用

Arp*_*rma 4 java android native audio-player android-music-player

我正在关注以下帖子以创建简单的音乐播放器,但是从列表中选择任何歌曲或从 MediaController 按下上一个/下一个会出现以下错误。我正在使用奥利奥(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);
}
Run Code Online (Sandbox Code Playgroud)

}

错误 MediaPlayer error: attachnewplayer called in state 64

参考:创建简单的音乐播放器

小智 7

您必须重置播放器,还必须设置 setAudioStreamType,因此您的代码将如下所示

try 
{
    player.reset();
    player.setDataSource(getApplicationContext(), trackUri);
    player.setAudioStreamType(AudioManager.STREAM_MUSIC);
    player.prepareAsync();
}
Run Code Online (Sandbox Code Playgroud)