在mediaplayer中加载多个音乐媒体

问题描述 投票:0回答:1

在切换的情况下,它不加载歌曲声明。

    final ArrayList<Integer> playlist;


    playlist = new ArrayList<>();
    playlist.add(R.raw.honey);
    playlist.add(R.raw.anger);
    playlist.add(R.raw.contempt);
    playlist.add(R.raw.disgust);
    playlist.add(R.raw.fear);
    playlist.add(R.raw.happy);
    playlist.add(R.raw.sadness);
    playlist.add(R.raw.surprise);


    MediaPlayer mediaPlayer = null;
    Button play = findViewById(R.id.play);
    Button pause = findViewById(R.id.pause);
    Button jumpToMainActivity = findViewById(R.id.jumpToMainActivity);

    mediaPlayer = MediaPlayer.create(this,playlist.get(0));

    switch (final_detected_emotion){
        case "anger":
            mediaPlayer.reset();
            mediaPlayer.create(this,playlist.get(1));
            break;
        case "contempt":
            mediaPlayer.reset();
            mediaPlayer.create(this,playlist.get(2));
            break;
        case "disgust":
            mediaPlayer.reset();
            mediaPlayer.create(this,playlist.get(3));
            break;
        case "fear":
            mediaPlayer.reset();
            mediaPlayer.create(this,playlist.get(4));
            break;
        case "happy":
            mediaPlayer.reset();
            mediaPlayer.create(this,playlist.get(5));
            break;
        case "sadness":
            mediaPlayer.reset();
            mediaPlayer.create(this,playlist.get(6));
            break;
        case "surprise":
            mediaPlayer.reset();
            mediaPlayer.create(this,playlist.get(7));
            break;
    }
    final MediaPlayer finalMediaPlayer = mediaPlayer;

    play.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finalMediaPlayer.start();
        }
    });

它只播放honey的歌曲.通过的字符串(final_detected_emotion)改变了,但歌曲没有改变。

我可以删除mediaplayer对象吗?

我做了一个应用程序,它可以在检测到的情绪时播放歌曲。

java android android-studio kotlin kotlin-android-extensions
1个回答
0
投票
    switch (final_detected_emotion){
        case "anger":
           mediaPlayer = MediaPlayer.create(this,playlist.get(1));
            break;
        case "contempt":
           mediaPlayer = MediaPlayer.create(this,playlist.get(2));
            break;
        case "disgust":
            mediaPlayer = MediaPlayer.create(this,playlist.get(3));
            break;
        case "fear":
            mediaPlayer = MediaPlayer.create(this,playlist.get(4));
            break;
        case "happy":
            mediaPlayer = MediaPlayer.create(this,playlist.get(5));
            break;
        case "sadness":
           mediaPlayer = MediaPlayer.create(this,playlist.get(6));
            break;
        case "surprise":
            mediaPlayer = MediaPlayer.create(this,playlist.get(7));
            break;
        default :
            mediaPlayer = MediaPlayer.create(this,playlist.get(0));
    }
© www.soinside.com 2019 - 2024. All rights reserved.