Java編程實現(xiàn)獲取mp3時長及播放mp3文件的方法
本文實例講述了Java編程實現(xiàn)獲取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);
}
}
更多java相關內(nèi)容感興趣的讀者可查看本站專題:《Java圖片操作技巧匯總》、《java日期與時間操作技巧匯總》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》及《Java數(shù)據(jù)結構與算法教程》。
希望本文所述對大家java程序設計有所幫助。
相關文章
Java中通過三級緩存解決Spring循環(huán)依賴詳解
這篇文章主要介紹了Java中通過三級緩存解決Spring循環(huán)依賴詳解,當出現(xiàn)兩個或多個 Bean 在初始化時相互依賴的情況時,Spring Boot 會將其中一個 Bean 提前暴露出來,以便其他 Bean 能夠在初始化時正確地引用它,這一策略能有效避免循環(huán)依賴導致的問題,需要的朋友可以參考下2023-09-09
spring中@RestController和@Controller的區(qū)別小結
@RestController和@Controller這兩個注解用于創(chuàng)建Web應用程序的控制器類,那么這兩個注解有哪些區(qū)別,本文就來介紹一下,并用示例代碼說明,感興趣的可以了解一下2023-09-09
SpringBoot使用Swagger生成多模塊的API文檔
這篇文章將以?Spring?Boot?多模塊項目為例,為大家詳細介紹一下如何使用?Swagger?生成多模塊的?API?文檔,感興趣的小伙伴可以了解一下2025-02-02
Java使用Callable接口實現(xiàn)多線程的實例代碼
這篇文章主要介紹了Java使用Callable接口實現(xiàn)多線程的實例代碼,實現(xiàn)Callable和實現(xiàn)Runnable類似,但是功能更強大,具體表現(xiàn)在可以在任務結束后提供一個返回值,Runnable不行,call方法可以拋出異,Runnable的run方法不行,需要的朋友可以參考下2023-08-08
Spring boot中使用ElasticSearch的方法詳解
這篇文章主要給大家介紹了關于Spring boot中使用ElasticSearch的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-01-01
聊聊SpringBoot使用Nacos進行服務注冊發(fā)現(xiàn)與配置管理問題
Nacos支持基于DNS和基于RPC的服務發(fā)現(xiàn)(可以作為springcloud的注冊中心)、動態(tài)配置服務(可以做配置中心)、動態(tài)?DNS?服務。本文重點給大家介紹SpringBoot使用Nacos進行服務注冊發(fā)現(xiàn)與配置管理,感興趣的朋友一起看看吧2022-01-01

