java获取mp3的时长和播放mp3文件

所需包为jaudiotagger-2.2.6-SNAPSHOT.jar和jl1.0.1.jar。

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;

import org.jaudiotagger.audio.AudioFileIO;
import org.jaudiotagger.audio.mp3.MP3AudioHeader;
import org.jaudiotagger.audio.mp3.MP3File;

import javazoom.jl.player.Player;

public class MusicUtil {

    public static void play(String position) {
        try {
            BufferedInputStream buffer = new BufferedInputStream(new FileInputStream(position));
            Player player = new Player(buffer);
            player.play();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static int getDuration(String position) {

        int length = 0;
        try {
            MP3File mp3File = (MP3File) AudioFileIO.read(new File(position));
            MP3AudioHeader audioHeader = (MP3AudioHeader) mp3File.getAudioHeader();

            // 单位为秒
            length = audioHeader.getTrackLength();

            return length;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return length;
    }

    public static void main(String[] args) {
        String position = "逃跑计划-夜空中最亮的星.mp3";
        getDuration(position);
        play(position);
    }
}
时间: 2024-11-05 22:21:49

java获取mp3的时长和播放mp3文件的相关文章

【Android端 APP 启动时长获取】启动时长获取方案及具体实施

一.什么是启动时长? 1.启动时长一般包括三种场景,分别是:新装包的首次启动时长,冷启动时长.热启动时长 冷启动 和 热启动 : (1)冷启动:当启动应用时,后台没有该程序的进程,此时启动的话系统会分配一个新的进程给应用. (2)热启动:程序的进程依然存在,启动时通过已有进程启动进入到Activity显示页面的,就是热启动,或者从Android官网来看我们获取到的其实是温启动时长,就是Activity不存在的情况. (3)新装包的启动时长: 新装包的启动时长,预估是最长的,并且在5.0以下及5.

asp+ffmpeg获取视频的时长

<% '视频数据定义 ffmpeg = "C:\ffmpeg\bin\ffmpeg.exe" video  = "D:\test\ffmpeg\test2\m1080p1.wmv" 'wscript脚本定义 set WshShell = CreateObject("Wscript.Shell") str2 = "cmd.exe /c "&ffmpeg&" -i "&video&

java web 程序---在线时长

思路:toLocalString()这个方法 ? 1 2 3 4 5 6 7 8 9 10 11 <body>     <%         long t=session.getLastAccessedTime();         long t2=session.getCreationTime();      %>           <h1>会话最近访问时间:<%=new Date(t).toLocaleString() %></h1>   

java 附件上传时后台验证上传文件的合法性

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8

关于Java就业和学习时长?

问:我最近联系到了一家培训机构 ,从他们公司了解到,学习Java从零基础到就业就4个月,我很担心这4个月究竟能学到多少.在这4个月究竟能不能学到东西.还有就是就业率还有失业率 答: 4个月学肯定是可以学习到知识的,但是就业就不敢保证了.要看你学习的效果了.四个月的课程很赶,很多都在赶进度,能不能跟得上是一个问题,很多人在培训的时候都说过前面讲的还不懂,又开始讲新的知识,越是着急越是不会,不是谁都适合四个月速成. 培训机构会给你画一个饼,去吊你的胃口,不要相信任何人跟你说你学完了之后工资是多少,这

java获取form表单里的字段和文件流

Map map=new HashMap(); boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (isMultipart) { // 文件上传 // 用stream api处理,提高性能 // System.err.println("file upload request..."); ServletFileUpload upload = new ServletFileUpload(); Fil

java获取音频文件播放时长

方法一: 在项目开发过程中,需要获取音视频文件时长.查询资料后发现 JAVE能够完美得到想要的结果,JAVE项目简介如下: The JAVE (Java Audio Video Encoder) library is Java wrapper on the ffmpeg project. Developers can take take advantage of JAVE to transcode audio and video files from a format to another. I

java 处理获取视频文件时长

现在所做的项目需要获取视频的时长.因为jdk1.5的api没看到有这个方法.所以在网上找了一下,发现jave这个项目.Encoder这个类有个方法: MulitimediaInfo中有个getDuration() 这便是我要找的答案 试验代码加上 因为返回的为毫秒,实际情况需要转换.

获取音频时长的总结

需要实现的需求: 前端展示录音的时长 实现该需求的前提条件: 1.深海捷(录音厂商)提供了两个关于录音的接口,一个是下载接口(访问接口,直接就下载音频文件了), 另一个接口是播放接口(接口返回一个html文件,文件中用Object标签实现了播放,可是只能在ie下播放,在chrom中无法展示播放器) 2.如果使用深海捷的服务拨打电话后,是会有回调事件,返回录音时长存到数据库的,所以这种场景已经有录音时长的数据,前端直接展示就 可以 3.还有一种场景就是接下来需要实现的场景,用户手动上传录音,这个时