2010-01-08 158 views
11

我試圖播放播放列表我得到使用MediaStore提供程序。但是,當我嘗試播放播放列表時,沒有任何反應。 MediaPlayer可以播放播放列表(m3u文件)嗎?我需要設置第一首曲目嗎?播放播放列表與MediaPlayer

這是在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

+0

請張貼你在這裏找到的解決方案,以便我們可以得到它的好處。 – MBH

回答

4

我不認爲媒體播放器可以播放的播放列表。我認爲它只會發揮一個軌道。您將不得不跟蹤播放列表中的曲目並將其傳送給媒體播放器。它可以幫助您查看音樂播放器的android源代碼以及它如何處理它。

+3

是的,我發現了。我把所有的軌道URI都放到一個List中,並將它們作爲單個軌道播放。當一首曲目完成後,我開始播放列表中的下一個。 – Kaloer