使用MediaPlayer播放播放列表

12

我正在尝试使用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();
    }

我已经打开了所有的音量流。

谢谢,

Kaloer


请将您找到的解决方案发布在这里,以便我们获得它的好处。 - MBH
1个回答

5

我认为媒体播放器无法播放播放列表。它只能播放单个音轨。你需要跟踪播放列表中的音轨并将它们传递给媒体播放器。查看Android音乐播放器的源代码以及它是如何处理此问题可能会对你有所帮助。


3
好的,我会尽力进行翻译。以下是需要翻译的内容:Yep,我找到了。我把所有的音轨URI都放到了一个列表中,并将它们作为单曲播放。当一首歌曲播放完毕后,我就开始播放列表中的下一首。 - Kaloer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接