Не воспроизводится музыка через MediaPlayer

Хочу сделать музыкальный проигрыватель. При нажатии на кнопку по идее должна воспроизводиться музыка. Но ничего не происходит. Помогите пожалуйста, в чем проблема?

Это метод, который воспроизводит музыку. Player - MediaPlayer

public void playSong(){
    player.reset();

    Song playSong = songList.get(songPosn);

    long currSong = playSong.getId();

    Uri trackUri = ContentUris.withAppendedId(
            android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
            currSong);


    try{
        player.setDataSource(getApplicationContext(), trackUri);
    }
    catch(Exception e){
        Log.e("MUSICSERVICE", "Error setting data source", e);
    }

    player.prepareAsync();
    player.start();
}



public void setSong(int songIndex){

    songPosn=songIndex;
}

А тут обрабатывается нажатие на кнопку

public void songPicked(View view){

  
//    Log.d("TAG", "setSong = " + view.getTag() );
    try {

    setSong(Integer.parseInt(view.getTag().toString()));
    playSong();
    
        Log.d("TAG", "setSong = " + view.getTag().toString() );
        

    } catch (NullPointerException nullPointerException) {
        
        Toast.makeText(musicSrv, "Something went wrong", Toast.LENGTH_SHORT).show();
    }

Ответы (1 шт):

Автор решения: Style-7

Ожидаем окончания выполнения метода prepareAsync()

media_player.setOnPreparedListener( new MediaPlayer.OnPreparedListener(){
            public void onPrepared( MediaPlayer mp ){
                mp.start();
            }
        } );
→ Ссылка