阅读更多
注意:
JRE的最低版本是:1.6
本项目的所有代码已移到google code,此前在sourceforge和java.net项目不再维护了,现在项目的地址为:
http://code.google.com/p/yoyoplayer
在使用过程中有任何问题,都欢迎在此留言。

1.2更新[2009-08-02]
1,全新的歌词搜索方式,使搜索率大大提高。
2,把整个代码全部移到google code上去。以前的sourceforge和java.net已经不再维护了。
=====================================================================================
1.1.3更新[2008-07-28]

1,完全去除了其它的搜索部分,因为有些网页格式经常会变动,所以一段时间以后可能又搜不到歌词了,现在搜索歌词用的是百度的filetype:lrc 歌曲名-歌手名 的方式进行搜索.
2,更新了在线搜索歌词的时候,只能下载一首的情况,以前点了下载之后,整个界面就不可用了,要重新输入歌曲信息才可用,现在已经不做限制了.
3,修补了当以前下载并匹配的歌词文件不见的时候,会出现既不下载新的歌词也不提示出错,现在当以前的歌词文件不存在时,会自动上网搜索新的歌词.
==================================================================================
1.1.2更新[2008-04-03]

1,更改了精品网页的歌词搜索部分,因为精品网页的内容发生了改变,如果不更改对应的搜索方式的话
将不能从精品网页上查询到歌词,无论怎么样,都对精品网页表示感谢,它的网址是:http://www.jpwy.net/gc
2,修正了程序在某些LINUX版本上的系统上打开会抛出异常而影响程序使用的BUG.
3,在歌词秀窗口去掉了作者的名字:),此前的不便,望各位用户原谅.
4,在使用过程中,有任何的建议,可以加作者的QQ:24325142,注明yoyoplayer,或者
登录http://www.blogjava.net/hadeslee上留言,此博客为作者的博客,再此感谢大家对yoyoplayer的支持.
==================================================================================

    YOYOPlayer1.0版推出之后,得到了一些朋友的认可和反馈,经过这段时间的修改,现在推出YOYOPlayer1.1版.相对于1.0版,改进的地方如下:
一,设置方面
1,增加了首选项的功能,很多方面现在已经可以配置
二,歌词方面
1,增加了歌词搜索的自主性,用户可以选择自定义搜索关键字,也可以自定义是否和歌词文件相关联,这里的关联并不是把歌词写入歌曲文件,而是在程序中建立一种关联,以免每次播放这首歌的时候都去搜索歌词,而是直接去读取关联好的歌词文件.
2,增加了指定歌词的搜索目录,指定歌词的保存目录功能.为了性能考虑,歌词的搜索目录不会往下递归,只搜索设置的那一级目录.
3,歌词的设置更为丰富,很多地方以前是固定的,现在都是可以改变的,并且增加了纵向显示歌词的卡拉OK显示功能,还支持字体是否抗锯齿显示的选项.
4,支持淡入淡出显示歌词,支持多种对齐方式.
5,在windows下面支持歌词窗口的透明显示.在linux下面,此选项将被禁用:(
三,标签方面
1,现在完全支持ID3v1,ID3v2,APEv2,Vorbis标签的读取和写入,并可设置标签的读取和写入的编码.以免在读取标签的时候出现乱码的情况.程序的默认设置编码是GBK,如果是UTF-8的用户,可以在首选项修改.
四,其它方面
1,可以选择音频设备,这在一定程度上可以选择几个设置对比一下效果.尽量减少播放器没有声音的情况.
2,增加在任务栏滚动显示歌曲标题.
3,支持设置代理服务器连接网络.
4,支持对播放列表进行一些细化的设置,因为程序预设的颜色不一定符合大家的审美观.
5,配置目录现在改为{user.home}/.YOYOPlayer/,默认的歌词目录是{user.home}/.YOYOPlayer/Lyrics/
6,快捷键:C:播放,V:停止,B:下一首,空格:暂停,F2:显示/隐藏歌词秀,F3:显示/隐藏EQ窗口,F4:显示/隐藏播放列表
7,在一定程度上实现了窗口的吸附的功能,虽然不是很完美,还望各位有什么好的想法一起分享:)
在首选项里在的还有很多功能没有实现,因为个人的精力实在有限,YOYOPlayer项目已经在google code上申请了项目,有想一起开发的朋友,可以和我联系.

YOYOPlayer现在项目已经移至google code,以前的sourceforge和java.net上面的项目不再维护了。因为速度很慢。
google code上主页的地址是:
http://code.google.com/p/yoyoplayer
在程序的使用过程中有任何意见和BUG反应,请到http://code.google.com/p/yoyoplayer/issues/list上新建issue。
在使用的过程中,有任何问题,欢迎到http://www.blogjava.net/hadeslee或者上留言.也可以加本人的QQ:24325142.希望和大家一起探讨JAVA问题,让JAVA的浓香飘的更远.
最后,谢谢我的女友YOYO这段时间以来以我的关心和鼓励.
下载地址为:
http://yoyoplayer.googlecode.com/files/YOYOPlayer1.2.zip
58
4
评论 共 52 条 请登录后发表评论
52 楼 wcl6210 2011-12-06 15:24
2011-12-6 15:13:47 com.hadeslee.yoyoplayer.util.Config load
信息: 配置加载成功!!
2011-12-6 15:13:48 com.hadeslee.yoyoplayer.equalizer.EqualizerUI <init>
信息: 均衡器不为NULL
2011-12-6 15:13:49 com.hadeslee.yoyoplayer.player.ui.TimePanel <init>
信息: 初始化的isNormal:true
2011-12-6 15:13:49 com.hadeslee.yoyoplayer.lyric.LyricPanel start
信息: 歌词开始显示了...
2011-12-6 15:13:49 com.hadeslee.yoyoplayer.player.ui.Main loadJS
信息: 可用的MIXER:Ö÷ÉùÒôÇý¶¯³
2011-12-6 15:13:49 com.hadeslee.yoyoplayer.player.ui.Main loadJS
信息: 可用的MIXER:ÑïÉùÆ÷ (High Definition Audio É豸)
2011-12-6 15:13:49 com.hadeslee.yoyoplayer.player.ui.Main loadJS
信息: 可用的MIXER:Java Sound Audio Engine
2011-12-6 15:13:49 com.hadeslee.yoyoplayer.player.ui.Main loadJS
信息: Config.Mixer=Ö÷ÉùÒôÇý¶¯³
2011-12-6 15:13:49 com.hadeslee.yoyoplayer.player.ui.PlayerUI loadPlaylist
信息: lastPlay=null
java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
at sun.net.www.http.HttpClient.New(HttpClient.java:306)
at sun.net.www.http.HttpClient.New(HttpClient.java:323)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:852)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:793)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:718)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1041)
at com.hadeslee.yoyoplayer.util.GAEUtil.getObjectInputStream(GAEUtil.java:113)
at com.hadeslee.yoyoplayer.util.GAEUtil.vote(GAEUtil.java:49)
at com.hadeslee.yoyoplayer.util.Util.voteOpen(Util.java:116)
at com.hadeslee.yoyoplayer.player.ui.CheckThread.run(CheckThread.java:71)
format:mp3
2011-12-6 15:19:22 com.hadeslee.audiotag.audio.AudioFile checkFilePermissions
信息: Reading file:pathE:\dd\下一个天亮.mp3:abs:E:\dd\下一个天亮.mp3
2011-12-6 15:19:22 com.hadeslee.audiotag.audio.mp3.MP3File readV1Tag
信息: No ids3v11 tag found
2011-12-6 15:19:22 com.hadeslee.audiotag.audio.mp3.MP3File readV2Tag
信息: Attempting to read id3v2tags
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.id3.AbstractID3v2Tag seek
信息: ByteBuffer pos:0:limit1097:cap1097
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.id3.ID3v24Tag read
信息: 下一个天亮.mp3:Reading tag from file size set in header is1087
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.id3.framebody.AbstractID3v2FrameBody read
信息: Reading body forTIT2:13
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.datatype.NumberFixedLength readByteArray
信息: Read NumberFixedlength:1
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.datatype.TextEncodedStringSizeTerminated readByteArray
信息: Read SizeTerminatedString:下一个天亮 size:12
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.id3.framebody.AbstractID3v2FrameBody read
信息: Reading body forTPE1:7
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.datatype.NumberFixedLength readByteArray
信息: Read NumberFixedlength:1
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.datatype.TextEncodedStringSizeTerminated readByteArray
信息: Read SizeTerminatedString:郭静 size:6
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.id3.framebody.AbstractID3v2FrameBody read
信息: Reading body forTALB:13
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.datatype.NumberFixedLength readByteArray
信息: Read NumberFixedlength:1
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.datatype.TextEncodedStringSizeTerminated readByteArray
信息: Read SizeTerminatedString:下一个天亮 size:12
2011-12-6 15:19:22 com.hadeslee.audiotag.tag.id3.ID3v24Frame read
信息: 下一个天亮.mp3:Invalid identifier:
51 楼 Megi 2010-02-09 15:15
赞一个,效果很好,顶起!
50 楼 andy54321 2010-01-07 17:18
主页上download不下那两个文件
辛苦哪位兄弟给发一份
guofangsky@gmail.com
谢了
49 楼 lidengm 2009-08-25 09:34
今天才发现,失败
顶LZ一个,最近做了个Swing的小项目,感觉蛮好,呵呵。。。
期待更多牛人啊
48 楼 enilu 2009-08-12 09:46
前面的YOYOplayer.bat里有点乱了,贴个清洁的,
@echo off

rem 下面使用的是绝对路径(给个为你自己jdk的路径)
set JAVA_HOME=E:\Program\Java6\jdk1.6
@echo Create the classpath
set CP=;
for %%i in (lib\*.jar) do call cp.bat %%i
for %%i in (YOYOPlayer.jar) do call cp.bat %%i
set CP=%CP%;
@ rem echo classpath:%CP%
%JAVA_HOME%\bin\java.exe -cp %CP% com.hadeslee.yoyoplayer.player.ui.Main

cp.bat:
set CP=%CP%;%1
47 楼 enilu 2009-08-12 09:35
给个运行的bat吧呵呵(用了两个bat文件,shell同理,改天弄好贴下):
YOYOplayer.bat
@echo off
REM Change the following line to set your JDK path
set   CURRENT_DIR=%cd% 
rem 下面使用的是jdk安装的绝对路径
set JAVA_HOME=E:\Program\Java6\jdk1.6

@echo Create the classpath
set CP=;
for %%i in (lib\*.jar) do call cp.bat %%i
for %%i in (YOYOPlayer.jar) do call cp.bat %%i
set CP=%CP%;

@ rem echo start agent
@ rem echo classpath:%CP%

%JAVA_HOME%\bin\java.exe -cp %CP% com.hadeslee.yoyoplayer.player.ui.Main
cp.bat:
set CP=%CP%;%1

46 楼 tvmovie 2009-08-10 09:15
试用了下,还不错啦,随着ubuntu的流行,跨平台是个超级亮点。
只是,似乎比winamp播放时占的内存稍多。
另外,希望 歌词搜索 可以加入 歌曲所在文件夹 这个选项和功能。
45 楼 panshenglu 2009-08-10 09:11
可以好好学习学习
44 楼 木石流云 2009-08-10 08:13
好久没见冰封大哥了,居然在这里遇见
43 楼 gmizr 2009-08-05 10:42
lz应该做个bat,还有linux/mac下的shell文件
这里都有人跟贴不知道怎么用
你让普通用户怎么办
42 楼 elf8848 2009-08-05 09:09
   下载试用了, 很好 , 真的不错
41 楼 justdo2008 2009-08-04 14:16
想起了是千里冰封为女朋友yoyo写得
40 楼 justdo2008 2009-08-04 14:12
好像很久以前在BLOGJAVA上看到的,还Down过!

还不错,新版本不知如何?
39 楼 nextroad 2009-08-04 13:22
最后只能在测试的环境下运行了, 很不错, 就是有点卡
38 楼 nextroad 2009-08-04 13:16
Could not found the main class.Program will exit就显示了这么一个提示框
37 楼 src_bord 2009-08-04 11:58
呵呵~java写产品确实是很费时的~但是解决了在不同平台的不平衡~在努力中,希望有能进入开源项目中
36 楼 gml520 2009-08-04 10:05
cocoynut 写道
要是能换肤就好了


看看项目主页上的介绍把:

即将实现的功能如下:
1,兼容千千静听的皮肤风格,使之可以换肤。
2,优化linux系统下拖动的时候,窗口会乱跳的问题。
3,实现桌面歌词。
4,实现LRC歌词编辑器,可以边听歌边编辑,然后内置上传功能,方便以后的搜索。
5,完全国际化,希望英语好的同学可以加入进来,帮忙翻译内容。
35 楼 javagui 2009-08-04 08:35
在OpenSolaris上面运行,拖拽功能无效,窗口整体移动不太理想。
总之,java功能很全面。
34 楼 cocoynut 2009-08-04 08:25
要是能换肤就好了
33 楼 ycysth 2009-08-04 01:46
效果很不错啊,不够功能方面还需要改进

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 公开密钥密码算法及其实现

    作为密码学的重要的基础知识,学习数论具有重要的意义。

  • 【密码学引论】公开密钥密码

    【密码学引论】公开密钥密码

  • 【网络安全】公钥密码体制

    公钥密码体制作为现代密码学的重要组成部分,自1976年Diffie和Hellman提出以来,已经经历了四十多年的发展和演变。从RSA的诞生到ElGamal、ECC以及基于格的密码体制的提出,公钥密码体制在理论和实践上都取得了显著的进步。

  • 公钥密码系统及RSA公钥算法

    摘要: 本文简单介绍了公开密钥密码系统的思想和特点,并具体介绍了RSA算法的理论基础,工作原理和具体实现过程,并通过一个简单例子说明了该算法是如何实现。在本文的最后,概括说明了RSA算法目前存在的一些缺点和解决方法。 关键词: 公钥密码体制 , 公钥 , 私钥 , RSA 中图分类号:TP309.7 §1引言 随着计算机联网的逐步实现,Internet前景越来越美好,全球经济发展正在进入信息经济时

  • 信息安全工程师笔记-公钥密钥体制概念

    公钥和私钥 公开密钥密码的思想是将传统密钥k一分为二,分为加密密钥Ke和解密密钥Kd,用加密密钥Ke控制加密,用解密密钥Kd控制解密。 每个用户都将自己的姓名、地址、公开的加密密钥等信息在KMC(密钥管理中心)登记,将公钥记入共享的密钥数据库PKDB(Public Key Database)。 公钥加密的安全性 确保数据的机密性(加密模式) 发送方: ①首先查PKDB,查到B的公开的公钥KeB; ②A用KeB加密明文M得到密文C:C=E(M, KeB); ③A发送密文C给B 接收方:.

  • RSA密码系统

    RSA是在Diffe-Hellman算法问世两年之后,由Rivest、Shamir和Adelman在MIT研究出的,并于1978年公布。 RSA系统利用这样的事实:模运算中冥的自乘数是容易解的。RSA的加密方程为: C=memodn C= m^e mod n 这里,密文C是信息m自乘指数幂e并除以模数n后的余数。这可以由任何一个知道信息m、模数n和加密指数e的计算机迅速完成。另一方面,将这一

  • 公开密钥密码学是什么

    公开密钥密码学(Public-key cryptography)也称非对称式密码学(Asymmetric cryptography)是密码学的一种算法,它需要两个密钥,一个是公开密钥,另一个是私有密钥;公钥用作加密,私钥则用作解密。使用公钥把明文加密后所得的密文,只能用相对应的私钥才能解密并得到原本的明文,最初用来加密的公钥不能用作解密。由于加密和解密需要两个不同的密钥,故被称为非对称加密;不同于...

  • 三种公钥密码体系(传统公开密钥体系 / 基于身份的公开密钥体系 / 基于无证书的公开密钥体系 )

    公开密钥体系 分类 基于证书的公开密钥体系 基于身份的公开密钥体系 基于无证书的公开密钥体系 基于证书的公开密钥体系 第一种方案是采用证书机制实现用户的身份和用户的钥匙之间的安全对应。证书机制一般都采用公钥基础设施(Public Key Infrastructure: PKI)技术。它综合使用了数字摘要技术、数字签名等密码技术以及一套完整的证书管理机制来提供安全服务。系统建设有公信力的认证中心(Certification Authority:CA)鉴定用户身份,然后为用户签发数字证书。数字证书安全地将用

  • 公开密钥密码体系

    公开密钥密码体制是现代密码学的最重要的发明和进展。一般理解密码学(Cryptography)就是保护信息传递的机密性。但这仅仅是当今密码学主题的一个方面。对信息发送与接收人的真实身份的验证、对所发出/接收信息在事后的不可抵赖以及保障数据的完整性是现代密码学主题的另一方面。   公开密钥密码体制对这两方面的问题都给出了出色的解答,并正在继续产生许多新的思想和方案。在公钥体制中,加密密钥不同于解...

  • 密钥,私钥,公钥的区分

    首先明确几个基本概念: 1、密钥对,在非对称加密技术中,有两种密钥,分为私钥和公钥,私钥是密钥对所有者持有,不可公布,公钥是密钥对持有者公布给他人的。 2、公钥,公钥用来给数据加密,用公钥加密的数据只能使用私钥解密。 3、私钥,如上,用来解密公钥加密的数据。 4、摘要,对需要传输的文本,做一个HASH计算,一般采用SHA1,SHA2来获得。 5、签名,使用私钥对需要传输的文本的摘要进行加...

  • 密码密钥傻傻分不清?认识密码学中的最高机密

    密码学为何称之为密码学?密码和密钥究竟有何区别?隐私保护方案中,密钥的角色是否可以被替代?密钥在使用过程中存在哪些风险? 这里,我们将以密码学中的密码为起点,展开一系列对密码学算法核心组件的技术剖析。密码和密钥在密码学算法中有着至关重要的地位,了解密码和密钥的作用,有助于理解基于密码学的隐私保护方案是否具备有效性。密码和密钥对于用户而言,则是最终达成隐私数据『始于人、利于人、忠于人』隐私保护效果的无上法器。 密码学的英文为Cryptography,源自希腊语“κρυπτός秘密”和“γράφ..

  • 密码体制(加密算法)

    密码体制分类方法有三种: 根据密码算法所用的密钥数量一般分为两类:非对称密码体制,对称密码体制 根据对明文信息的处理方式可将对称密码体制分为分组密码(DES、AES、IDEA、RC6)和序列密码(RC4、A5、SEAL) 根据是否能进行可逆的加密变换可以分为单项函数密码体制(MD4、MD5、SHA-1)和双向变换密码体制 对称密码体制 定义 对一个提供保密服务的密码系统,他...

  • 下面算法中,不属于公开密钥加密算法的是()。D

    下面算法中,不属于公开密钥加密算法的是()。D A.ECC B.DSA C.RSA D.DES 常用的公钥加密算法有RSA、DSA、ElGamal和ECC。 常用的对称加密算法有DES、3DES、IDEA、AES、Blowfish、Twofish和RSA公司的RC系列算法(如RC2、RC4、RC5、RC6)等。 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对...

  • 常用公钥算法及区别

      常用公钥算法   下面是三种最常用的公钥算法:   RSA-适用于数字签名和密钥交换。Rivest-Shamir-Adleman (RSA) 加密算法是目前应用最广泛的公钥加密算法,特别适用于通过 Internet 传送的数据。这种算法以它的三位发明者的名字命名:Ron Rivest、Adi Shamir 和 Leonard Adleman。RSA 算法的安全性基于分解大数字时的困难(

  • RSA DES 公钥 数字签名

    RSA:         RSA机制是一种公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。 RSA用到的公式和定理:   一、数和互为素数   任何大于1的整数a能被因式分解为如下唯一形式:a=p1p2…pl(p1,p2,…,pl为素数)   二、模运算   ①{[a(m

  • 密码学---公钥密码---公钥密码体制

    公钥密码体制公钥密码体制的概念公钥密码体制的原理使用公钥密码体制加密传送消息的过程使用公钥密码体制进行消息认证的过程使用公钥密码体制的加密和认证过程公钥密码算法要求公钥密码体制的攻击1.穷搜索攻击2.根据公钥计算密钥3.可能字攻击 在公钥密码体制之前,所有的密码算法都是基于代换和置换这两个基本工具。公钥密码体制为密码学的发展提供了新的理论和技术基础:1.公钥密码算法的基本攻击不再是代换和置换,而是数学函数;2.公钥密码以非对称的形式使用两个密钥,两个密钥的使用对保密性、密钥分配、认证等都有着深刻的意义。 公

  • 公钥密码体制(一)概述

    公钥密码体制基本原理

  • 应用密码学-RSA

    按照模重复平方法,计算 a的m次方modn (1)在主程序中读入数据, 输入顺序为:a n m(ps:a,m,n 都小于 1000) (2) 使用模重复平方法进行计算,得到结果 #include &lt;stdio.h&gt; #include &lt;iostream&gt; using namespace std; void LRFun_14(int x_14, int y_14, int z_14); void main() { int a,m,n; printf("请输入数字(a, m, n): \

  • [密码学]McEliece公钥密码体制

    McEliece公钥密码体制的简单介绍

Global site tag (gtag.js) - Google Analytics