android - 使用 MediaPlayer 设置歌曲数组

标签 android android-mediaplayer

我有 5 首歌曲,我需要一个接一个地播放,并且必须在播放完第 5 首歌曲后从第一首歌曲开始循环播放。 我如何使用 MediaPlayer 来实现这一点?

最佳答案

public class MediaPlayerExample extends Activity implements MediaPlayer.OnCompletionListener {
 int [] songs;
MediaPlayer mediaPlayer;
int current_index = 0; 
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

songs= new int[] {R.raw.song1,R.raw.song2,R.raw.song3,R.raw.song4};

mediaPlayer = MediaPlayer.create(this, songs[0]);

mediaPlayer.setOnCompletionListener(this);

mediaPlayer.start();

}
@Override
    public void onCompletion(MediaPlayer mp) {
        play();

    }

 private void play()
    {
        current_index = (current_index +1)% 4;
        AssetFileDescriptor afd = this.getResources().openRawResourceFd(songs[current_index]);

        try
        {   
            mediaPlayer.reset();
            mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
            mediaPlayer.prepare();
            mediaPlayer.start();
            afd.close();
        }
        catch (IllegalArgumentException e)
        {
            Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
        }
        catch (IllegalStateException e)
        {
            Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
        }
        catch (IOException e)
        {
            Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
        }
    }
}

关于android - 使用 MediaPlayer 设置歌曲数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7383387/

相关文章:

java - 在 Android 应用程序中使用 Fabric Twitter Kit 加载用户时间线时无法设置回调

android - 通知声音打断音乐

android - 如何使用 MediaCodec API 调用我的自定义解码器

android - 如何在 Android Webview 上播放 rtsp 视频?

android - Android 中的媒体播放器要求

java - Android:无法创建媒体播放器(请使用 URL)

android - ViewPager中Fragment的调用方法

android - 在同一应用程序的 PreferenceActivity 和 Service 中管理 SharedPreferences

android - 如何在CoordinatorLayout内部的CollapsingToolbarLayout下面将 View 居中

android - 如何在android中使用服务显示图像