首页 > 解决方案 > 在媒体播放器中加载多个音乐媒体

问题描述

它不会加载开关盒中声明的歌曲

    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();
        }
    });

它只播放蜂蜜歌曲。字符串 (final_detected_emotion) 传递了更改,但歌曲没有更改。

我会删除媒体播放器对象吗

我制作了一个应用程序,它可以根据检测到的情绪播放歌曲

标签: javaandroidandroid-studiokotlinkotlin-android-extensions

解决方案


    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));
    }

推荐阅读