File audiofile = new File("F:\\gq\\015238.mp3");
怎么得到audiofile 的播放时间呢?请大家帮忙?

解决方案 »

  1.   

    贴一段我找的代码给你,希望能对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);
      }
      
     }}
      

  2.   

    首先,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这个值,这就要根据码率和文件大小来计算播放时间了,比较麻烦不过一般情况下,上面的代码就够了
      

  3.   

    “java本身的sound api不支持mp3,你要下在mp3解码器放到classpath下”,怎么做呀。。不明白呀
      

  4.   

    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);
      }
      
     }}