日历
网志分类
· 所有网志 (158)
· 随笔记录 (49)
· 光影瞬间 (45)
· 图片记录 (28)
· 诗行偶拾 (6)
· 高考频道 (21)
· 采撷收藏 (4)
· 图片处理 (4)
· 未分类 (1)
站内搜索
友情链接
· 我的歪酷
· 小小的blog
· 青苹的博客
· 笑看风云
·      
· 103英汉发声字典
· 中国摄影在线
· 天涯社区
· 江苏高考信息网

订阅 RSS

0034955

歪酷博客

回声悠远

——生命是历程,回首聆听,岁月的回声悠长而久远……                              


« 上一篇: 吕四的海边 下一篇: 重游江阴鹅鼻嘴 »
syndi @ 2008-10-07 15:16

  上一回给自做自用的Java日记本加了背景音乐,没加什么控制,音乐总是循环播放,其实人并不总是喜欢音乐的,有时我嫌烦就会索性将电脑设置成静音。就想有时间改造一下这个小东西,目的明确:保留背景音乐,增添智能化控制开关。今天化了半天时间成功实现。

  开始先做了些无用功。先行设计了两个华丽丽的按钮,存成背景透明的gif文件格式,将按钮挂上去后才发现不怎么妥当,华丽的按钮与简洁的界面不和谐呢。于是即刻丢弃,简单找了两个字符,表示一开一关。
  字符是在word中试的,试了一些,最后从“●○№¤○◎△”中挑了两个。
  ◎:音乐正在播放中,点击停播。按钮命名为songOn。
  ¤:音乐暂停,有待播放。按钮命名为songOff。
  这样的按钮虽然有些简陋,但绝不雷同,感觉很个性化也很简洁。意象也有一些。虽然这是两个独立的按钮,但它们总不同时出现,又置放在了同一个位置上,所以使用角度看,它们是一个按钮两种形态。

  背景音乐是mp3文件,原是通过第三方的javazoom.jl.player.jlp类实现的,jlp对象有一个play方法实现音乐播放,本想找一个类似pause或stop的方法实现音乐暂停或停止,结果没找到,发现jlp对音乐的控制唯play一个方法。退而求次,想让jlp对象指向一个不存在的mp3文件,来实现音乐停止,重指向存在的mp3文件,实现音乐继续。然调试的结果要么有声要么就没声,推敲一下,这个方案本质是有弊病的,难即时响应,便也丢弃了(即便还有可探讨之处)。最终用了线程控制,Java对mp3音乐的播放控制,通过线程控制完美实现了。

  关键的事件处理代码:

          if(oo==songOn){
           music.resume();
           songOn.setVisible(false);
           songOff.setVisible(true);
          }
          else{
           music.suspend();
           songOn.setVisible(true);
           songOff.setVisible(false);
          }

  music是一个循环播放mp3文件的线程对象:music=new Thread(new Music(Note.song));
  music.suspend()挂起线程,让线程从运行态到非运行态,音乐暂停;music.resume()让线程重回运行态,音乐从暂停处继续。上面的语句中,music线程是通过Music创建的。而Music类是一个实现Runnable接口的类,其中的run方法设置成循环播放mp3音乐。



曾经的这一天...



评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定