Java編程實(shí)現(xiàn)獲取mp3時(shí)長(zhǎng)及播放mp3文件的方法
本文實(shí)例講述了Java編程實(shí)現(xiàn)獲取mp3時(shí)長(zhǎng)及播放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 = "逃跑計(jì)劃-夜空中最亮的星.mp3";
getDuration(position);
play(position);
}
}
更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java圖片操作技巧匯總》、《java日期與時(shí)間操作技巧匯總》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》及《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》。
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
- java實(shí)現(xiàn)酷狗音樂(lè)臨時(shí)緩存文件轉(zhuǎn)換為MP3文件的方法
- java實(shí)現(xiàn)mp3合并的方法
- 教你輕松制作java音樂(lè)播放器
- Java程序中添加播放MIDI音樂(lè)功能的實(shí)現(xiàn)方法詳解
- java 實(shí)現(xiàn)音樂(lè)播放器的簡(jiǎn)單實(shí)例
- java音樂(lè)播放器實(shí)現(xiàn)代碼
- java音樂(lè)播放器編寫(xiě)源碼
- 簡(jiǎn)單實(shí)現(xiàn)java音樂(lè)播放器
- java音樂(lè)播放器課程設(shè)計(jì)
- JavaSwing后臺(tái)播放音樂(lè)mp3
相關(guān)文章
java gui詳解貪吃蛇小游戲?qū)崿F(xiàn)流程
剛開(kāi)始學(xué)JAVA GUI,就練手寫(xiě)了一個(gè)小時(shí)候經(jīng)常在諾基亞上玩的一個(gè)小游戲__貪吃蛇.做的比較簡(jiǎn)單,但還是可以玩的.感興趣的朋友快來(lái)看看吧2021-11-11
Java中通過(guò)三級(jí)緩存解決Spring循環(huán)依賴詳解
這篇文章主要介紹了Java中通過(guò)三級(jí)緩存解決Spring循環(huán)依賴詳解,當(dāng)出現(xiàn)兩個(gè)或多個(gè) Bean 在初始化時(shí)相互依賴的情況時(shí),Spring Boot 會(huì)將其中一個(gè) Bean 提前暴露出來(lái),以便其他 Bean 能夠在初始化時(shí)正確地引用它,這一策略能有效避免循環(huán)依賴導(dǎo)致的問(wèn)題,需要的朋友可以參考下2023-09-09
Java實(shí)現(xiàn)各種文件類(lèi)型轉(zhuǎn)換方式(收藏)
這篇文章主要介紹了Java?各種文件類(lèi)型轉(zhuǎn)換的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
spring中@RestController和@Controller的區(qū)別小結(jié)
@RestController和@Controller這兩個(gè)注解用于創(chuàng)建Web應(yīng)用程序的控制器類(lèi),那么這兩個(gè)注解有哪些區(qū)別,本文就來(lái)介紹一下,并用示例代碼說(shuō)明,感興趣的可以了解一下2023-09-09
SpringBoot服務(wù)上實(shí)現(xiàn)接口限流的方法
這篇文章主要介紹了SpringBoot服務(wù)上實(shí)現(xiàn)接口限流的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
SpringBoot使用Swagger生成多模塊的API文檔
這篇文章將以?Spring?Boot?多模塊項(xiàng)目為例,為大家詳細(xì)介紹一下如何使用?Swagger?生成多模塊的?API?文檔,感興趣的小伙伴可以了解一下2025-02-02
Java使用Callable接口實(shí)現(xiàn)多線程的實(shí)例代碼
這篇文章主要介紹了Java使用Callable接口實(shí)現(xiàn)多線程的實(shí)例代碼,實(shí)現(xiàn)Callable和實(shí)現(xiàn)Runnable類(lèi)似,但是功能更強(qiáng)大,具體表現(xiàn)在可以在任務(wù)結(jié)束后提供一個(gè)返回值,Runnable不行,call方法可以拋出異,Runnable的run方法不行,需要的朋友可以參考下2023-08-08
Spring boot中使用ElasticSearch的方法詳解
這篇文章主要給大家介紹了關(guān)于Spring boot中使用ElasticSearch的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
聊聊SpringBoot使用Nacos進(jìn)行服務(wù)注冊(cè)發(fā)現(xiàn)與配置管理問(wèn)題
Nacos支持基于DNS和基于RPC的服務(wù)發(fā)現(xiàn)(可以作為springcloud的注冊(cè)中心)、動(dòng)態(tài)配置服務(wù)(可以做配置中心)、動(dòng)態(tài)?DNS?服務(wù)。本文重點(diǎn)給大家介紹SpringBoot使用Nacos進(jìn)行服務(wù)注冊(cè)發(fā)現(xiàn)與配置管理,感興趣的朋友一起看看吧2022-01-01

