① java如何讀取MP3格式文件的內容然後對其播放實例代碼
直接下個JMF,google搜,sun官網上有~~然後安裝目錄是你的JDK,
再播放MP3文件就:
import javax.media.*;
import java.net.MalformedURLException;
import java.net.URL;
Player player;
File playFile=new File("");//你的MP3文件
try {
player=Manager.createRealizedPlayer(playFile.toURL());
player.prefetch();
player.setMediaTime(new Time(10.0));
player.start();
} catch (NoPlayerException e1)
{
e1.printStackTrace();
} catch (CannotRealizeException e1)
{
e1.printStackTrace();
} catch (MalformedURLException e1)
{
e1.printStackTrace();
} catch (IOException e1)
{
e1.printStackTrace();
}
這種基本代碼,自己搜一下,用編譯器熟悉熟悉JMF的方法就會了。。。我以前回答別人時的答案~~~
② java 如何讀寫遠程mp3文件
//:URLReader.java ==================
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.net.URL;
public class URLReader {
public static void readAndSave(String url,String fileFullName)throws Exception{
System.out.println("Starting.");
URL u = new URL(url);
byte[] buffer = new byte[1024*8];
int read;
int ava = 0;
long start = System.currentTimeMillis();
BufferedInputStream bin = new BufferedInputStream(u.openStream());
BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(fileFullName));
while((read=bin.read(buffer))>-1){
bout.write(buffer,0,read);
ava+=read;
long speed = ava/(System.currentTimeMillis()-start);
System.out.println("Download: "+ava+" byte(s)"+" avg speed: "+speed+" (kb/s)");
}
bout.flush();
bout.close();
System.out.println("Done. size:"+ava+" byte(s)");
}
public static void main(String[] args) throws Exception {
URLReader.readAndSave(
"http://51hr.28tel.com.tw/UploadFile/Record/20090531114140.mp3",
"d:/雙人舞.mp3");
}
}
======================================================
輸出顯示:
Starting.
Download: 8192 byte(s) avg speed: 6 (kb/s)
Download: 8385 byte(s) avg speed: 6 (kb/s)
Download: 16577 byte(s) avg speed: 11 (kb/s)
Download: 17025 byte(s) avg speed: 11 (kb/s)
Download: 25217 byte(s) avg speed: 15 (kb/s)
Download: 25665 byte(s) avg speed: 16 (kb/s)
Download: 33857 byte(s) avg speed: 19 (kb/s)
Download: 34305 byte(s) avg speed: 19 (kb/s)
③ java程序讀取mp3文件的播放時間時間!
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("D://aaa.mp3");
mediaPlayer.prepare();
int time = mediaPlayer.getDuration();
time就是時長
④ java中如何獲取音頻(mp3)長度
1.采樣率。
2.壓縮格式。
基本上就跟這倆東西有關了。
有了這個以後,可以根據文件的大小來計算播放時長。
至於具體的,我也沒算過。我覺得你可以cut一段音樂,比如wma格式的,看看一分鍾是多大。然後用你的文件大小來和這個標准文件作比較。
還有其他方法就是藉助外部包jar,也可使用JMF框架。
⑤ java如何實現播放mp3
簡單的實例,代碼如下,純粹JMF載入MP3並播放:
import javax.media.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class PlayerMusic implements ControllerListener {// ControllerListener
// 控制事件
private Player player;
private boolean first, loop;
private String path;
private List mp3List;
private int mp3NO = 0;
PlayerMusic(List mp3List) {
this.mp3List = mp3List;
}
public void start() {
try {
player = Manager.createPlayer(new MediaLocator("file://" + mp3List.get(mp3NO)));
} catch (NoPlayerException ex) {
ex.printStackTrace();
System.out.println("不能播放文件");
return;
} catch (IOException ex) {
ex.printStackTrace();
return;
}
if (player == null) {
System.out.println("播放器為空");
return;
}
first = false;
player.addControllerListener(this);
// 提取媒體內容
player.prefetch();
}
public void controllerUpdate(ControllerEvent e) {
// 當媒體播放結束時,循環播放
if (e instanceof EndOfMediaEvent) {
mp3NO++;
if(mp3NO<this.mp3List.size()){
this.start();
}
return;
}
// 當預提取媒體的內容結束
if (e instanceof PrefetchCompleteEvent) {
player.start();
return;
}
// 當實例化後
if (e instanceof RealizeCompleteEvent) {
// pack(); //執行pack()操作
return;
}
}
public static void main(String[] args) {
List mp3List = new ArrayList();
mp3List.add("d://a.mp3");
mp3List.add("d://b.mp3");
mp3List.add("d://c.mp3");
PlayerMusic pm = new PlayerMusic(mp3List);
pm.start();
}
}
⑥ java 怎麼讀取音樂文件
以隨機讀寫方式打開一個MP3文件
將文件指針偏移量移動到文件長度倒數128位
判斷標簽頭"TAG"是否存在
讀取TAG_V1中的各個內容
關閉文件
TAG_V1(長度是固定的)其中包括的信息有:
標簽頭"TAG"3位元組
標題30位元組
作者30位元組
專輯30位元組
出品年份4位元組
備注信息28位元組
保留1位元組
音軌1位元組
類型1位元組
讀
入一個MP3文件的TAG_V1部分信息:
bytebuf = new byte[128];//初始化標簽信息的byte數組
RandomAccessFile raf = new RandomAccessFile(mp3, "r");//隨機讀寫方式打開MP3文件
raf.seek(raf.length() - 128);//移動到文件MP3末尾
raf.read(buf);//讀取標簽信息
raf.close();//關閉文件
if(buf.length != 128){//數據長度是否合法
throw new Exception("MP3標簽信息數據長度不合法!");
}
if(!"TAG".equalsIgnoreCase(new String(buf,0,3))){//標簽頭是否存在
throw new Exception("MP3標簽信息數據格式不正確!");
}
獲得TAG_V1中的各個內容:
String SongName=new String(buf,3,30,"utf-8").trim();//歌曲名稱
String Artist=new String(buf,33,30,"utf-8").trim();//歌手名字
String Album=new String(buf,63,30,"utf-8").trim();//專輯名稱
String Year=new String(buf,93,4,"utf-8").trim();//出品年份
StringComment =new String(buf,97,28,"utf-8").trim();//備注信息
⑦ Java 怎樣獲取Mp3文件的播放時長
File file = new File("G:\\8.mp3");
long total = 0;
try {
AudioFileFormat aff = AudioSystem.getAudioFileFormat(file);
Map props = aff.properties();
if (props.containsKey("ration"))
total = (long) Math.round((((Long) props.get("ration"))
.longValue())/1000);
System.out.println(total);
} catch (UnsupportedAudioFileException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
⑧ Java 怎麼讀取mp3文件的信息,比如:歌曲名稱,專輯名稱,歌手,備注等信息
JDK本身是不支持mp3格式的。不過網上有提供JAR包下載,導入就可以了。
⑨ java文件讀取讀取指定目錄的所有mp3文件,包括所有子目錄,將所讀取的文件名呈現在控制台
此方法採用遞歸法搜索所有F盤的MP3和Flac文件。
不想搜flac文件的話,把 |s.endsWith("flac") 刪掉即可。
圖片是源碼排版。
源碼如下
import java.io.File;
class TestDemo {
public static void main(String[] args) {
File file = new File("f:\");
isMusic(file);
}
public static void isMusic(File f) {
File[] file = f.listFiles();
if (file != null) {
for (File file2 : file) {
if (file2.isFile()) {
String s = file2.getPath();
if (s.endsWith("mp3") | s.endsWith("flac")) {
System.out.println(s);
}
} else {
isMusic(file2);
}
}
}
}
}