



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中考数学总复习《二次根式》专项测试卷带答案
- VB编程的解决思路及答案
- 2025届贵州省毕节织金县数学七下期末学业水平测试试题含解析
- 企业信息安全的保安策略计划
- 2025年构建弹性企业战略试题及答案
- 秘书如何保持工作生活平衡计划
- 企业资金使用效率评估计划
- 行业安全管理的国际经验计划
- 公司战略评估体系建立试题及答案
- 城市交通影响评价重点基础知识点
- 汽车定点洗车协议书
- 2025年青海西宁事业单位(行测)考试笔试试题(含答案)
- 抖音直播电商供应链服务及品牌授权与管理合同
- 2025央国企CIO选型指南-ERP产品
- 【MOOC答案】《光纤光学》(华中科技大学)章节作业期末慕课答案
- 2025内蒙古工程咨询监理有限责任公司招聘监理项目储备库人员400人笔试参考题库附带答案详解
- 劳动合同书范本介绍5篇
- 2025年中考与法治三轮冲刺:时政热点分析说明题 刷题练习题汇编(含答案解析)
- 江苏省南京市、盐城市2025届高三年级5月第二次模拟考试化学试题及答案(南京盐城二模)
- 上海市金山区2025届高三下学期二模数学试卷(含答案)
- 【MOOC】宇宙简史-南京大学 中国大学慕课MOOC答案
评论
0/150
提交评论