Медиа-плеер - Android Студия - PullRequest
0 голосов
/ 11 июля 2020

Мне нужна помощь с моим медиаплеером ....... отладчик продолжает говорить мне, что медиаплеер нулевой:

Я произнес тост, и мне кажется, что медиаплеер все еще нулевой после того, как я его создам: и нет, мой uri не равен нулю!

mediaPlayer = MediaPlayer.create(this, uri);

Log Cat:

Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference

Media Player:

MediaPlayer mediaPlayer = new MediaPlayer();

Код:

    public void playSongs() {
            if (PlayingScreen_List != null) {
                uri = Uri.parse(PlayingScreen_List.get(position).getPath());
            }
    
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            try {
                mediaPlayer.setDataSource(this, uri);
            } catch (IOException e) {
                e.printStackTrace();
            }
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mp) {
                    mp.start();
                }
            });
            if (mediaPlayer != null) {
                mediaPlayer.stop();
                mediaPlayer.release();
                mediaPlayer = MediaPlayer.create(this, uri);
    

//After I did a toast it keeps telling me that the media player is null 

                Toast.makeText(this, String.valueOf(mediaPlayer + " Media Player"), Toast.LENGTH_SHORT).show();
                Toast.makeText(this, String.valueOf(uri + " Uri"), Toast.LENGTH_SHORT).show();
            } else {
                mediaPlayer = MediaPlayer.create(this, uri);

//After I did a toast it keeps telling me that the media player is null after I create it

                Toast.makeText(this, String.valueOf(mediaPlayer + " Media Player else"), Toast.LENGTH_SHORT).show();
                Toast.makeText(this, String.valueOf(uri + " Uri else"), Toast.LENGTH_SHORT).show();
            }
            mediaPlayer.start();
        }

1 Ответ

0 голосов
/ 11 июля 2020

Вам не нужно устанавливать новый MediaPlayer, подобный этому (это не сработает):

MediaPlayer mediaPlayer = new MediaPlayer();

Вам нужно только вызвать метод create (), который является правильным способом создания новый объект MediaPlayer для вас:

mediaPlayer = MediaPlayer.create(this, R.raw.your_sound);

пример:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.your_sound);

}

void playSound(){ mediaPlayer.play(); }
void stopSound()throuws IOException { mediaPlayer.stop(); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...