練習(xí)55聲音播放器(應(yīng)用程序中)_第1頁(yè)
練習(xí)55聲音播放器(應(yīng)用程序中)_第2頁(yè)
練習(xí)55聲音播放器(應(yīng)用程序中)_第3頁(yè)
練習(xí)55聲音播放器(應(yīng)用程序中)_第4頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、練習(xí) 55聲音播放器(應(yīng)用程序中)本例知識(shí)點(diǎn)一句話講解新學(xué)使用 FileInputStream 類讀取文件內(nèi)容知識(shí)使用 AudioPlayer 類播放聲音已學(xué)使用 File 類選取文件知識(shí)使用 Button 類生成按鈕一、練習(xí)具體要求本練習(xí)制作應(yīng)用程序中的聲音播放器,運(yùn)行效果如圖55-1 所示。執(zhí)行本例實(shí)例后,將創(chuàng)建一個(gè)帶有4 個(gè)按鈕的運(yùn)行界面。按下 Open 按鈕可以選擇要播放的聲音文件(*.au) ,按下Play 按鈕可以播放當(dāng)前的聲音文件,按下Loop 按鈕可以循環(huán)播放當(dāng)前聲音文件,按下按鈕可以停止播放當(dāng)前聲音文件。本實(shí)例的知識(shí)點(diǎn)有:FileDialog 類, FileInputStre

2、amStop類,AudioStream類和AudioData類的應(yīng)用。二、程序及注釋( 1)編程思路:本例因?yàn)橐x擇聲音文件,所以首先要打開(kāi)一個(gè)聲音文件,以此文件名作為 FileInputStream 構(gòu)造函數(shù)的參數(shù), 實(shí)例化一個(gè) FileInputStream 類的對(duì)象 fis 。然后,因?yàn)橐4媛曇魯?shù)據(jù), 所以首先要用 fis 作為數(shù) AudioStream 構(gòu)造函數(shù)的參數(shù); 然后實(shí)例化一個(gè) AudioStream 類對(duì)象 as, 聲音數(shù)據(jù)就存在 as 的 Data 域;再調(diào)用函數(shù) as.getData()把聲音數(shù)據(jù)保存在 AudioData 的對(duì)象 theData 里。最后, 因?yàn)椴シ怕?/p>

3、音文件, 所以首先要用對(duì)象實(shí)例化 AudioDataStream 對(duì)象 ads(如果需要一次播放聲音數(shù)據(jù)的話)或者用 theDataContinuousAudioDataStream對(duì)象 cads(如果需要循環(huán)播放的話),然后只要以ads 或 cads為參數(shù),調(diào)用函數(shù),就完成了播放聲音的全過(guò)程。(2) 程序?qū)崿F(xiàn)及注釋:/SoundPlayer.javapublic class SoundPlayer extends Frameimplements FilenameFilter,ActionListenerButton openButton = new Button("Open&quo

4、t;);Button playButton = new Button("Play");Button loopButton = new Button("Loop");Button stopButton = new Button("Stop");Label filename = new Label("");File theFile = null;AudioData theData = null;InputStream nowPlaying = null;public SoundPlayer()/ 設(shè)置標(biāo)題欄文字supe

5、r("SoundPlayer");/ 關(guān)閉窗口時(shí)退出程序addWindowListener(new WindowAdapter() public voidwindowClosing(WindowEvent e) System.exit(0););/ 設(shè)置窗口大小setSize(300,200);/ 設(shè)置窗口背景色setBackground(Color.orange);/ 設(shè)置窗口上方面板控件內(nèi)容Panel north = new Panel();north.setLayout(new FlowLayout(FlowLayout.LEFT);north.add(new Lab

6、el("File:");north.add("NORTH",filename);add("North",north);/ 設(shè)置窗口下方面板控件內(nèi)容Panel south = new Panel();south.add(openButton);south.add(playButton);south.add(loopButton);south.add(stopButton);add("South",south);/ 為按鈕添加事件監(jiān)聽(tīng)openButton.addActionListener(this);playButt

7、on.addActionListener(this);loopButton.addActionListener(this);stopButton.addActionListener(this);/ 主函數(shù),應(yīng)用程序入口處public static void main(String args)SoundPlayer sp = new SoundPlayer();sp.show();/ 打開(kāi)文件public void open()FileDialog fd = new FileDialog(this,"please select a file");fd.setFilenameF

8、ilter(this);fd.show();trytheFile = new File(fd.getDirectory()+"/"+fd.getFile();if(theFile != null)filename.setText(theFile.getName();FileInputStream fis = new FileInputStream(theFile);AudioStream as = new AudioStream(fis);theData = as.getData();catch(IOException e)catch(SecurityException e

9、)/ 開(kāi)始播放public void play()stop();if(theData = null) open();if(theData != null)AudioDataStream ads = new AudioDataStream(theData);nowPlaying = ads;/ 停止播放public void stop()if(nowPlaying != null)nowPlaying = null;/ 循環(huán)播放public void loop()stop();if(theData = null) open();if(theData != null)ContinuousAudio

10、DataStream cads= newContinuousAudioDataStream(theData);nowPlaying = cads;/ 事件響應(yīng)public void actionPerformed(ActionEvent e)if(e.getSource() = playButton)play();if(e.getSource() = openButton)open();if(e.getSource() = loopButton)loop();if(e.getSource() = stopButton)stop();public boolean accept(File dir,

11、String name)return true;三、練習(xí)效果(如圖55-1 所示)本實(shí)例代碼編寫完畢,存盤為:SoundPlayer.java。打開(kāi)計(jì)算機(jī)的命令提示符窗口,然后在命令提示符窗口中,定位到j(luò)avaprograms目錄,輸入javac SoundPlayer.java來(lái)編譯程序,用java SoundPlayer命令便可以看到制作效果。圖 55-1 練習(xí)效果四、總結(jié)提高通過(guò)制作聲音播放器的練習(xí), 運(yùn)用了件讀取技術(shù)。通過(guò)界面設(shè)計(jì)技術(shù),制作了播放器的用戶界面。Java2 中的界面設(shè)計(jì)技術(shù)和文通過(guò)文件讀取技術(shù), 可以打開(kāi)要播放的聲音文件以便進(jìn)行播放。出師表兩漢:諸葛亮先帝創(chuàng)業(yè)未半而中道崩

12、殂, 今天下三分, 益州疲弊, 此誠(chéng)危急存亡之秋也。然侍衛(wèi)之臣不懈于內(nèi),忠志之士忘身于外者,蓋追先帝之殊遇,欲報(bào)之于陛下也。誠(chéng)宜開(kāi)張圣聽(tīng),以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。宮中府中,俱為一體;陟罰臧否,不宜異同。若有作奸犯科及為忠善者,宜付有司論其刑賞,以昭陛下平明之理;不宜偏私,使內(nèi)外異法也。侍中、侍郎郭攸之、費(fèi)祎、董允等,此皆良實(shí),志慮忠純,是以先帝簡(jiǎn)拔以遺陛下:愚以為宮中之事,事無(wú)大小,悉以咨之,然后施行,必能裨補(bǔ)闕漏,有所廣益。將軍向?qū)?,性行淑均,曉暢軍事,試用于昔日,先帝稱之曰愚以為營(yíng)中之事,悉以咨之,必能使行陣和睦,優(yōu)劣得所?!澳?”,是以眾議舉寵為督:親賢臣, 遠(yuǎn)小人, 此先漢所以興隆也; 親小人, 遠(yuǎn)賢臣, 此后漢所以傾頹也。 先帝在時(shí),每與臣論此事, 未嘗不嘆息痛恨于桓、 靈也。 侍中、尚書、 長(zhǎng)史、 參軍,此悉貞良死節(jié)之臣,愿陛下親之、信之,則漢室之隆,可計(jì)日而待也。臣本布衣,躬耕于南陽(yáng),茍全性命于亂世,不求聞達(dá)于諸侯。先帝不以臣卑鄙,猥自枉屈,三顧臣于草廬之中,咨臣以當(dāng)世之事,由是感激,遂許先帝以驅(qū)馳。后值傾覆,受任于敗軍之際,奉命于危難之間,爾來(lái)二十有一年矣。先帝知臣謹(jǐn)慎,故臨崩寄臣以大事也。受命以來(lái),夙夜憂嘆,恐托付不

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論