java中怎么得到音频文件的播放时间等头信息 File audiofile = new File("F:\\gq\\015238.mp3");怎么得到audiofile 的播放时间呢?请大家帮忙? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 贴一段我找的代码给你,希望能对lz有帮助import javax.media.*;import java.io.*;import java.net.*;public class TestPlayer{ private static Player player=null; private static String path="";//当前路径 private static File file=null; public TestPlayer(){ } /** * @param args */ public static void main(String[] args) { System.out.println("程序将执行一分钟:"); //初始化 path="hotleave.mp3";//给出绝对或相对地址 file=new File(path); try{ URL url=file.toURL(); System.out.println(url); //path="E:/hotleave.mp3"; //player=Manager.createPlayer(new MediaLocator("file:"+path)); player=Manager.createPlayer(url); }catch(Exception e){ System.err.println(e.getMessage()); } //创建实例,开始播放 if(player==null){ System.err.println("不小心出错了~~~~"); }else{ player.prefetch(); player.start(); } System.out.println(); //启动线程延时 try{ new Thread().sleep(60000);//执行一分钟后关闭 }catch(Exception e){ System.out.println(e.getMessage()); } //停止 if(player!=null){ player.stop(); System.out.println("程序执行完毕"); System.exit(0); } }} 首先,java本身的sound api不支持mp3,你要下在mp3解码器放到classpath下,然后用如下代码:File file = new File("G:\\8.mp3");long total = 0;try { AudioFileFormat aff = AudioSystem.getAudioFileFormat(file); Map props = aff.properties(); if (props.containsKey("duration")) total = (long) Math.round((((Long) props.get("duration")) .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();}我这里是输出:227762单位是毫秒。有时候,一个mp3文件可能不按规矩来,没有duration这个值,这就要根据码率和文件大小来计算播放时间了,比较麻烦不过一般情况下,上面的代码就够了 “java本身的sound api不支持mp3,你要下在mp3解码器放到classpath下”,怎么做呀。。不明白呀 import javax.media.*;import java.io.*;import java.net.*;public class TestPlayer{ private static Player player=null; private static String path="";//当前路径 private static File file=null; public TestPlayer(){ } /** * @param args */ public static void main(String[] args) { System.out.println("程序将执行一分钟:"); //初始化 path="hotleave.mp3";//给出绝对或相对地址 file=new File(path); try{ URL url=file.toURL(); System.out.println(url); //path="E:/hotleave.mp3"; //player=Manager.createPlayer(new MediaLocator("file:"+path)); player=Manager.createPlayer(url); }catch(Exception e){ System.err.println(e.getMessage()); } //创建实例,开始播放 if(player==null){ System.err.println("不小心出错了~~~~"); }else{ player.prefetch(); player.start(); } System.out.println(); //启动线程延时 try{ new Thread().sleep(60000);//执行一分钟后关闭 }catch(Exception e){ System.out.println(e.getMessage()); } //停止 if(player!=null){ player.stop(); System.out.println("程序执行完毕"); System.exit(0); } }} java错误,新人求指点。。。谢谢 svn上传文件报错 SCJP中的一道泛型题 怎么以追加的方式打开文件啊?或者怎样往文件的末尾加入一行? 关于java操作xml和生成pdf格式文档的问题!!!请大虾们帮忙! 关于单线程和多线程问题? 在JAVA中求平方根用什么函数? 为什么我的程序能编译,可不能执行! Java教程 怎样在Jbuilder3/4中安装使用javamail包? java 卡片布局问题 c大家好 我想请教个问题
import java.io.*;
import java.net.*;public class TestPlayer{
private static Player player=null;
private static String path="";//当前路径
private static File file=null;
public TestPlayer(){
} /**
* @param args
*/
public static void main(String[] args) {
System.out.println("程序将执行一分钟:");
//初始化
path="hotleave.mp3";//给出绝对或相对地址
file=new File(path);
try{
URL url=file.toURL();
System.out.println(url);
//path="E:/hotleave.mp3";
//player=Manager.createPlayer(new MediaLocator("file:"+path));
player=Manager.createPlayer(url);
}catch(Exception e){
System.err.println(e.getMessage());
}
//创建实例,开始播放
if(player==null){
System.err.println("不小心出错了~~~~");
}else{
player.prefetch();
player.start();
}
System.out.println();
//启动线程延时
try{
new Thread().sleep(60000);//执行一分钟后关闭
}catch(Exception e){
System.out.println(e.getMessage());
}
//停止
if(player!=null){
player.stop();
System.out.println("程序执行完毕");
System.exit(0);
}
}}
File file = new File("G:\\8.mp3");
long total = 0;
try {
AudioFileFormat aff = AudioSystem.getAudioFileFormat(file);
Map props = aff.properties();
if (props.containsKey("duration"))
total = (long) Math.round((((Long) props.get("duration"))
.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();
}
我这里是输出:
227762
单位是毫秒。有时候,一个mp3文件可能不按规矩来,没有duration这个值,这就要根据码率和文件大小来计算播放时间了,比较麻烦不过一般情况下,上面的代码就够了
import java.io.*;
import java.net.*;public class TestPlayer{
private static Player player=null;
private static String path="";//当前路径
private static File file=null;
public TestPlayer(){
} /**
* @param args
*/
public static void main(String[] args) {
System.out.println("程序将执行一分钟:");
//初始化
path="hotleave.mp3";//给出绝对或相对地址
file=new File(path);
try{
URL url=file.toURL();
System.out.println(url);
//path="E:/hotleave.mp3";
//player=Manager.createPlayer(new MediaLocator("file:"+path));
player=Manager.createPlayer(url);
}catch(Exception e){
System.err.println(e.getMessage());
}
//创建实例,开始播放
if(player==null){
System.err.println("不小心出错了~~~~");
}else{
player.prefetch();
player.start();
}
System.out.println();
//启动线程延时
try{
new Thread().sleep(60000);//执行一分钟后关闭
}catch(Exception e){
System.out.println(e.getMessage());
}
//停止
if(player!=null){
player.stop();
System.out.println("程序执行完毕");
System.exit(0);
}
}}