freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于java的mp3播放器的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁

2025-08-06 12:17本頁面
  

【正文】 null。 于播放信息中包含播放列表,播放列表中又包含歌曲節(jié)點(diǎn),層層嵌套所以下面介紹播放列表和歌曲節(jié)點(diǎn)的內(nèi)容及操作(2)播放列表模塊: 列表可以看作是一個(gè)容器,每一個(gè)播放列表的對(duì)象都存放著許多歌曲節(jié)點(diǎn),它主要負(fù)責(zé)對(duì)歌曲及誒單的操作,如添加文件,刪除列表項(xiàng),清空列表等 (3)歌曲信息節(jié)點(diǎn)模塊: 構(gòu)造中讀取3字節(jié)的標(biāo)簽“TAG”,30字節(jié)的MP3標(biāo)題信息,30字節(jié)的演唱者信息,30字節(jié)的專輯信息,4字節(jié)的年代信息,30字節(jié)的備注信息和1個(gè)字節(jié)的音樂風(fēng)格序列,共128字節(jié)的MP3歌曲信息 歌曲節(jié)點(diǎn)的核心代碼主要是構(gòu)造函數(shù)的代碼,如下SongInfo(File f) {//獲取文件對(duì)象以構(gòu)造歌曲節(jié)點(diǎn) // TODO 自動(dòng)生成構(gòu)造函數(shù)存根 filename=()。//文件名 absolutepath=()。//文件路徑 Date d = new Date(())。//日期 lastmodifiedy=()+1900。//年 lastmodifiedm=()+1。//月 lastmodifiedd=()。//日 try { format=(f)。//格式tempplayer=(new MediaLocator(file:+()))。 totaltime=().getSeconds()。//創(chuàng)建一個(gè)未分配系統(tǒng)資源的播放器以便獲取播放總時(shí)間 ()。 formatinfo=()。 } catch{…..}if(().endsWith(.mp3)||().endsWith(.MP3)) { //若為mp3文件,則讀取TAG獲取信息 try { FileInputStream fin = new FileInputStream(f)。 byte[] data=new byte[128]。 (data)。getmp3info(data)。//通過讀取的128個(gè)字節(jié)信息獲取歌曲信息 } catch {…..} }}播放列表主要負(fù)責(zé)對(duì)列表的操作,如新建列表,刪除列表,載入列表,保存列表(1) 打開函數(shù)文件 打開文件時(shí),要調(diào)用系統(tǒng)的文件選擇器,新建一個(gè)JFileChooser的對(duì)象并進(jìn)行一定的過濾,若用戶沒有取消選擇,則將文件或文件組添加到當(dāng)前列表(2) 保存/裝載列表函數(shù) 當(dāng)一對(duì)象創(chuàng)建之后,只要需要,他會(huì)一直存在下去,擔(dān)當(dāng)應(yīng)用程序結(jié)束,所有的對(duì)象都會(huì)走向消亡。有些應(yīng)用場景下,如果能夠?qū)?duì)象的狀態(tài)保存下來,并在下一次應(yīng)用程序啟動(dòng)是重新啟動(dòng)被保存的信息是非常有必要的,利用Java的I/O操作可以實(shí)現(xiàn)。 序列化(即將播放列表保存)1:要一個(gè)輸出目的,因此需要?jiǎng)?chuàng)建一個(gè)OutputStream對(duì)象。2:OutputStream封裝到一個(gè)ObjectOutputStream對(duì)象內(nèi)。ObjectOutputStream是一個(gè)專門用于對(duì)象序列化的類3:用ObjectOutputStream提供的writeObject()方法即可將對(duì)象序列化,轉(zhuǎn)換成字節(jié)序列,并將其發(fā)送到OutputStream所指代的媒介中。代碼如下 private static File file=new File(save\\”+filename)。ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file))。 (())。 ()。 同樣,反序列化代碼原理相同,在此不再一一贅述。 歌詞控制模塊詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 歌詞控制模塊主要負(fù)責(zé)歌詞的加載,撤銷,歌詞的識(shí)別,以及重新繪制歌詞面板等讀取LRC文件成功后翻譯為兩個(gè)鏈表,一個(gè)是時(shí)間鏈表,一個(gè)是歌詞鏈表,二者一一對(duì)應(yīng),在后面的時(shí)間線程中每隔一秒檢查一次歌詞時(shí)間匹配 代碼如下:double ct = ().getSeconds()。//當(dāng)前時(shí)間 double nt = 0。//讀取LRC標(biāo)示時(shí)間 while (true) { try { s = ()。//讀取下一行 } catch (NoSuchElementException e) { break。 } nt = 60 * ((1, 3)) //分 + ((4, 6)) //秒 + ((7, 9)) / 。} 大綱視圖如圖41:圖41 大綱邏輯圖五、系統(tǒng)運(yùn)行環(huán)境及效果 系統(tǒng)運(yùn)行環(huán)境 本軟件運(yùn)行需要Java Runtime 系統(tǒng)運(yùn)行效果圖51 程序主界面圖六、總結(jié)面對(duì)軟件市場上的各種各樣的媒體播放器,要設(shè)計(jì)一個(gè)非常優(yōu)秀的并非常有競爭力的音頻播放器,并不是一件容易的事。但筆者還是設(shè)計(jì)實(shí)現(xiàn)了一個(gè)自制的帶歌詞實(shí)時(shí)顯示的音頻播放器,這不僅僅讓我學(xué)到了很多有關(guān)多媒體方面的知識(shí),還讓我了解到了如何去設(shè)計(jì),以及如何實(shí)現(xiàn)播放器的各種功能。通過設(shè)計(jì)此系統(tǒng),我學(xué)到了不少有用的知識(shí),這些將對(duì)我今后的學(xué)習(xí)與工作有很大的幫助。首先,通過此播放器系統(tǒng)的設(shè)計(jì),我對(duì)于設(shè)計(jì)開發(fā)一個(gè)軟件系統(tǒng)的工作流程有了進(jìn)一步的認(rèn)識(shí),明白了軟件開發(fā)過程中各個(gè)階段的基本任務(wù),以及各個(gè)階段之間的聯(lián)系,明確了軟件開發(fā)中形成的文檔資料的重要性。第二,通過此播放器系統(tǒng)的設(shè)計(jì),我基本上掌握了怎樣使用Eclipse,JMF來編寫多媒體應(yīng)用程序。當(dāng)然,由于這是我第一次進(jìn)行多媒體系統(tǒng)的開發(fā)工作,所開發(fā)出來的系統(tǒng)不可避免地存在著一些不足,我會(huì)在今后的學(xué)習(xí)工作中逐步加以改進(jìn)。在這個(gè)軟件的編制過程中,我參看了大量的書籍與資料,但由于能力水平有限,在程序中肯定有較多不完善的地方??傮w來說,通過本學(xué)期的畢業(yè)設(shè)計(jì),我在帶歌詞實(shí)時(shí)顯示的音頻播放器系統(tǒng)的開發(fā)、Eclipse,Java及JMF編程等方面有了一定的進(jìn)步,為以后從事更大型的軟件設(shè)計(jì)奠定了堅(jiān)實(shí)的基礎(chǔ)。參考文獻(xiàn)[1] :電子工業(yè)出版社,2010,237~292[2](美):機(jī)械工業(yè)出版社,2007,50~100[3]:化學(xué)工業(yè)出版社,2010,10~40[4][5]CSDN. 利用JMF進(jìn)行多媒體編程, 2008[6]陳剛. Eclipse從入門到精通(第二版).清華大學(xué)出版社,2007
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1