練習55聲音播放器(應用程序中)_第1頁
練習55聲音播放器(應用程序中)_第2頁
練習55聲音播放器(應用程序中)_第3頁
練習55聲音播放器(應用程序中)_第4頁
免費預覽已結束,剩余3頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2、amStop類,AudioStream類和AudioData類的應用。二、程序及注釋( 1)編程思路:本例因為要選擇聲音文件,所以首先要打開一個聲音文件,以此文件名作為 FileInputStream 構造函數的參數, 實例化一個 FileInputStream 類的對象 fis 。然后,因為要保存聲音數據, 所以首先要用 fis 作為數 AudioStream 構造函數的參數; 然后實例化一個 AudioStream 類對象 as, 聲音數據就存在 as 的 Data 域;再調用函數 as.getData()把聲音數據保存在 AudioData 的對象 theData 里。最后, 因為播放聲

3、音文件, 所以首先要用對象實例化 AudioDataStream 對象 ads(如果需要一次播放聲音數據的話)或者用 theDataContinuousAudioDataStream對象 cads(如果需要循環播放的話),然后只要以ads 或 cads為參數,調用函數,就完成了播放聲音的全過程。(2) 程序實現及注釋:/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()/ 設置標題欄文字supe

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

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

7、on.addActionListener(this);loopButton.addActionListener(this);stopButton.addActionListener(this);/ 主函數,應用程序入口處public static void main(String args)SoundPlayer sp = new SoundPlayer();sp.show();/ 打開文件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、)/ 開始播放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;/ 循環播放public void loop()stop();if(theData = null) open();if(theData != null)ContinuousAudio

10、DataStream cads= newContinuousAudioDataStream(theData);nowPlaying = cads;/ 事件響應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;三、練習效果(如圖55-1 所示)本實例代碼編寫完畢,存盤為:SoundPlayer.java。打開計算機的命令提示符窗口,然后在命令提示符窗口中,定位到javaprograms目錄,輸入javac SoundPlayer.java來編譯程序,用java SoundPlayer命令便可以看到制作效果。圖 55-1 練習效果四、總結提高通過制作聲音播放器的練習, 運用了件讀取技術。通過界面設計技術,制作了播放器的用戶界面。Java2 中的界面設計技術和文通過文件讀取技術, 可以打開要播放的聲音文件以便進行播放。出師表兩漢:諸葛亮先帝創業未半而中道崩

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

溫馨提示

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

評論

0/150

提交評論