使用MediaPlayer播放播放列表

Kal*_*oer 11 android

我正在尝试使用MediaStore提供程序播放播放列表.但是,当我尝试播放播放列表时,没有任何反应.MediaPlayer可以播放播放列表(m3u文件)吗?我是否需要设置要播放的第一首曲目?

这是我在onCreate()方法中的测试代码:

        Uri uri = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
    if(uri == null) {
        Log.e("Uri = null");
    }
    String[] projection = new String[] { MediaStore.Audio.Playlists._ID, MediaStore.Audio.Playlists.NAME, MediaStore.Audio.Playlists.DATA };
    Cursor c = managedQuery(uri, projection, null, null, null);
    if(c == null) {
        Toast.makeText(getApplicationContext(), R.string.alarm_tone_picker_error, Toast.LENGTH_LONG).show();
        return;
    }
    if(!c.moveToFirst()) {
        c.close();
        Toast.makeText(getApplicationContext(), R.string.alarm_tone_picker_no_music, Toast.LENGTH_LONG).show();
        return;
    }
    c.moveToFirst();
    try {
        MediaPlayer player = new MediaPlayer();
        player.setDataSource(c.getString(2));
        player.start();
    } catch(Exception e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

我打开了每个音量流.

谢谢,

Kaloer

小智 5

我不认为媒体播放器可以播放播放列表.我认为它只会发挥作用.您必须跟踪播放列表中的曲目并将其传递给媒体播放器.它可能会帮助您查看音乐播放器的Android源代码以及它如何处理它.

  • 是的,我发现了.我将所有轨道URI放到列表中并将它们作为单个轨道播放.一首曲目结束后,我开始播放列表中的下一首曲目. (3认同)