【问题标题】:How to play the next song in an array?如何播放数组中的下一首歌曲?
【发布时间】:2017-05-05 14:20:00
【问题描述】:

对于一项任务,我正在尝试使用媒体播放器播放数组中的歌曲。数组中的第一首歌曲播放良好,但下一首和最后一首曲目按钮是我的问题所在。谁能建议一种从我的音乐阵列中播放下一首/最后一首歌曲的方法?

没有相关代码不包括在内。

// Arrays of sound files
private int[] audioFileArrayChill = {R.raw.vanilla_summer, R.raw.lifeline, R.raw.remember_the_mountain_bed};`

// Listen for the end of the track
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
            for (int x = 1; x <= audioArray.length; x++) {
                currentIndex++;
                // Play next song in array
                mp.selectTrack(audioArray[x]);
                mp.start();

            }

        }
    });


 // Assigning onClickListener to last track button
    lastTrack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mediaPlayer.reset();
            mediaPlayer.selectTrack(audioArray[currentIndex - 1]);
            try {
                mediaPlayer.prepare();
                mediaPlayer.start();
            } catch (IOException e) {
                Log.e("Error", "ERROR");

            }

        }
    });


// Assigning onClickListener to next track button
    nextTrack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            mediaPlayer.reset();
            mediaPlayer.selectTrack(audioArray[currentIndex + 1]);
            try {
                mediaPlayer.prepare();
                mediaPlayer.start();
            } catch (IOException e) {
                Log.e("Error", "ERROR");

            }


        }
    });

【问题讨论】:

  • 到底是什么问题?您是否记录错误?当您按下下一首或最后一首曲目时,究竟会发生什么?
  • 当我按下其中任何一个按钮时,应用程序就会崩溃 - 我觉得我使用媒体播放器功能不正确(由于缺乏经验),我将重新运行应用程序并尽快发布错误日志!

标签: java android arrays media-player


【解决方案1】:

使用下面的代码点击下一个按钮

  nextTrack.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
      mp.stop();
      mp.reset();
      mp.setDataSource(audioArray[currentIndex + 1]);
      mp.prepare();              
      mp.start();
   }

【讨论】:

  • 感谢您的回复 - 但是 setDataSource 出现错误,“无法解析方法”。我应该使用循环吗?
  • 用什么来播放音乐
猜你喜欢
  • 2018-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多