2012-02-24 48 views
1

有誰知道一個Java庫,讓我讀m3u格式的文件來獲得 文件的名稱和它作爲一個數組絕對路徑...?讀M3U(播放列表)文件

澄清:我想我的Java程序能夠解析Winamp的播放列表文件 (.M3U)獲得mp3文件的名稱+路徑在播放列表中

+0

我不知道你問什麼。 '將文件名和它的絕對路徑作爲一個數組'是什麼意思?也許你可以顯示一些僞代碼? – home 2012-02-24 07:42:07

+0

爲什麼不直接閱讀.m3u文件的內容? 得到線陣列和前置於每行的m3u格式文件的目錄。 – 2012-02-24 07:43:25

回答

3

快速谷歌搜索產量Lizzy,這似乎做what you want

+0

在這個階段不能推薦Lizzy。單元測試是基本上不存在的,這個項目不會被維持並埋在Sourceforge上。另外還有一個很難的ffmpeg依賴關係,這對於文本文件解析器來說沒有什麼意義。 – 2015-03-03 04:04:30

2

試試我的Java M3U解析器:

用法:

try{ 
M3U_Parser mpt = new M3U_Parser(); 
M3UHolder m3hodler = mpt.parseFile(new File("12397709.m3u")); 
for (int n = 0; n < m3hodler.getSize(); n++) { 
System.out.println(m3hodler.getName(n)); 
System.out.println(m3hodler.getUrl(n)); 
} 
}catch(Exception e){ 
e.printStackTrace(): 
} 

該項目公佈here

2

M3U是可以通過線上線讀取一個普通的文本文件。只記得以#開頭的行是註釋。這是我爲此目的而製作的課程。本課程假定您只需要計算機上的文件。如果你想在網站上的文件,你將不得不做一些小的編輯。

/* 
* Written by Edward John Sheehan III 
* Used with Permission 
*/ 

package AppPackage; 

import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileReader; 
import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

/** 
* 
* @author Edward John Sheehan III 
*/ 
public class PlayList { 
    List<String> mp3; 
    int next; 
    public PlayList(File f){ 
     mp3=new ArrayList<>(); 
     try (BufferedReader br = new BufferedReader(new FileReader(f))) { 
      String line; 
      while ((line = br.readLine()) != null) { 
       addMP3(line); 
      } 
     } catch (IOException ex) { 
      System.out.println("error is reading the file"); 
     } 
     next=-1; 
    }  

    private void addMP3(String line){ 
     if(line==null)return; 
     if(!Character.isUpperCase(line.charAt(0)))return; 
     if(line.indexOf(":\\")!=1)return; 
     if(line.indexOf(".mp3", line.length()-4)==-1)return; 
     mp3.add(line); 
    } 

    public String getNext(){ 
     next++; 
     if(mp3.size()<=next)next=0; 
     return mp3.get(next); 
    } 
} 

然後就叫

Playlist = new PlayList(file); 
相關問題