千千静听的歌词服务器地址是哪个?

千千静听的歌词服务器地址是哪个?,第1张

最近想做一个音乐播放器,播放器需要显示歌词,这就需要到网上下载歌词。花了两个晚上搞了一个歌词下载类,通过歌名和歌手算出响应代码到千千静听服务器下载

具体流程如下:

1、通过歌名 Title 和 歌手 Artist ,计算出歌词下载列表地址

先把Title和Artist转换为十六进制,带入下面服务器地址

歌词Id获取地址:http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?sh?Artist={0}&Title={1}&Flags=0"

然后连接到地址,得到一个Xml文件,可以得到歌词的下载Id

2、通过 Id 和 Title 和 Artist 算出相应的Code,具体看代码(参考自网上)

歌词下载服务器地址:http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?dl?Id={0}&Code={1}

下面是代码

定义两个类:LyricsHelper(辅助获取歌词Id)LrcInfo(歌词下载相应信息)

public class LyricsHelper

{

//歌词Id获取地址

private static readonly string SearchPath = "http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?sh?Artist={0}&Title={1}&Flags=0"

//根据artist和title获取歌词信息

public static LrcInfo[] GetLrcList(string artist, string title, string filepath)

{

string artistHex = GetHexString(artist, Encoding.Unicode)

string titleHex = GetHexString(title, Encoding.Unicode)

string resultUrl = string.Format(SearchPath, artistHex, titleHex)

XmlDocument doc = new XmlDocument()

try

{

doc.Load(resultUrl)

XmlNodeList nodelist = doc.SelectNodes("/result/lrc")

List<LrcInfo>lrclist = new List<LrcInfo>()

foreach (XmlNode node in nodelist)

{

XmlElement element = (XmlElement)node

string artistItem = element.GetAttribute("artist")

string titleItem = element.GetAttribute("title")

string idItem = element.GetAttribute("id")

lrclist.Add(new LrcInfo(idItem, titleItem, artistItem, filepath))

}

return lrclist.ToArray()

}

catch (XmlException)

{

return null

}

}

//把字符串转换为十六进制

public static string GetHexString(string str, Encoding encoding)

{

StringBuilder sb = new StringBuilder()

byte[] bytes = encoding.GetBytes(str)

foreach (byte b in bytes)

{

sb.Append(b.ToString("X").PadLeft(2, '0'))

}

return sb.ToString()

}

}

public class LrcInfo

{

//歌词下载地址

private static readonly string DownloadPath = "http://ttlrcct2.qianqian.com/dll/lyricsvr.dll?dl?Id={0}&Code={1}"

public string FilePath { getset}

public string Id { getset}

public string Artist { getset}

public string Title { getset}

public string LrcUri { getset}

public LrcInfo(string id, string title, string artist, string filepath)

{

this.FilePath = filepath

this.Id = id.Trim()

this.Title = title

this.Artist = artist

//算出歌词的下载地址

this.LrcUri = string.Format(DownloadPath, Id, CreateQianQianCode())

}

public bool DownloadLrc()

{

string file = FilePath

string directory = Path.GetDirectoryName(file) + "\\Lrc\\"

if (!Directory.Exists(directory))

{

Directory.CreateDirectory(directory)

}

string filepath = directory + Path.GetFileNameWithoutExtension(file) + ".lrc"

WebRequest request = WebRequest.Create(LrcUri)

StringBuilder sb = new StringBuilder()

try

{

using (StreamReader sr = new StreamReader(request.GetResponse().GetResponseStream(), Encoding.UTF8))

{

using (StreamWriter sw = new StreamWriter(filepath, false, Encoding.UTF8))

{

sw.Write(sr.ReadToEnd())

}

}

return true

}

catch (WebException)

{

}

return false

}

private string CreateQianQianCode()

{

int lrcId = Convert.ToInt32(Id)

string qqHexStr = LyricsHelper.GetHexString(Artist + Title, Encoding.UTF8)

int length = qqHexStr.Length / 2

int[] song = new int[length]

for (int i = 0i <lengthi++)

{

song[i] = int.Parse(qqHexStr.Substring(i * 2, 2), System.Globalization.NumberStyles.HexNumber)

}

int t1 = 0, t2 = 0, t3 = 0

t1 = (lrcId &0x0000FF00) >>8

if ((lrcId &0x00FF0000) == 0)

{

t3 = 0x000000FF &~t1

}

else

{

t3 = 0x000000FF &((lrcId &0x00FF0000) >>16)

}

t3 = t3 | ((0x000000FF &lrcId) <<8)

t3 = t3 <<8

t3 = t3 | (0x000000FF &t1)

t3 = t3 <<8

if ((lrcId &0xFF000000) == 0)

{

t3 = t3 | (0x000000FF &(~lrcId))

}

else

{

t3 = t3 | (0x000000FF &(lrcId >>24))

}

int j = length - 1

while (j >= 0)

{

int c = song[j]

if (c >= 0x80) c = c - 0x100

t1 = (int)((c + t2) &0x00000000FFFFFFFF)

t2 = (int)((t2 <<(j % 2 + 4)) &0x00000000FFFFFFFF)

t2 = (int)((t1 + t2) &0x00000000FFFFFFFF)

j -= 1

}

j = 0

t1 = 0

while (j <= length - 1)

{

int c = song[j]

if (c >= 128) c = c - 256

int t4 = (int)((c + t1) &0x00000000FFFFFFFF)

t1 = (int)((t1 <<(j % 2 + 3)) &0x00000000FFFFFFFF)

t1 = (int)((t1 + t4) &0x00000000FFFFFFFF)

j += 1

}

int t5 = (int)Conv(t2 ^ t3)

t5 = (int)Conv(t5 + (t1 | lrcId))

t5 = (int)Conv(t5 * (t1 | t3))

t5 = (int)Conv(t5 * (t2 ^ lrcId))

long t6 = (long)t5

if (t6 >2147483648)

t5 = (int)(t6 - 4294967296)

return t5.ToString()

}

private long Conv(int i)

{

long r = i % 4294967296

if (i >= 0 &&r >2147483648)

r = r - 4294967296

if (i <0 &&r <2147483648)

r = r + 4294967296

return r

}

}

下载:

千千静听 主页 http://ttplayer.91.com/index.htm

简体中文版 http://ttplayer.91.com/ttpsetup.exe

繁体中文版 http://ttplayer.91.com/ttpsetup_cht.exe

=====

天空软件园

简体中文版 http://www.skycn.com/soft/11350.html

繁体中文版 http://www.skycn.com/soft/23405.html

千千静听 - FAQ

一。常规问题

问:Unicode和Ansi版本是怎么回事,用一个更好?

Unicode是统一字符编码方式,Unicode版本的程序只能运行在NT/2000/XP/2003等新的Windows上,可以解决不同语言的显示问题,并且由于Unicode在这些系统上有高好的性能,所以当处理大量列表的时候也有很大的帮助。

千千静听内部处理字符串时(例如处理标签或列表时),大量使用系统默认的16位Unicode(即使是Ansi版本也一样,只是显示的时候才转换成Ansi),可以最大限度的提高处理的性能。

问:我是繁体XP的用户,可以使用千千静听吗?

可以,千千静听已经支持unicode,可以在非简体中文的Windows 2000/XP下使用,千千静听的界面不会出现乱码,但某些只包含ID3v1标签的MP3文件可能是显示乱码,可以尝试用“文件信息”里的内码转换功能来找到正确的内码。千千静听还提供了繁体和简体之间的标签和歌词转换。

问:安装新版本的时候,需要先删除以前的版本吗?

不用,直接覆盖安装就行了,千千静听可以兼容以前的参数设置,但某些功能可能因为升级而发生变化,绝大多数设置将继续有效。

问:为什么我的电脑上没有淡入淡出窗口的效果?

淡入淡出窗口以及半透明窗口效果都需要Windows2000或以上的操作系统才能支持。

问:我的窗口不小心拖动屏幕外面了,怎么办?

在Windows的系统栏(屏幕右下角的系统时间那里)右键点击主菜单,选“查看窗口”

下面的“重新排列”,这个对普通模式和迷你模式都有效。

问:我想把千千支持的文件格式默认用千千来打开,怎么样最方便?

千千选项的最后一页“系统关联”,可以在你想要关联的某个格式,或某一类格式上打

上勾,并且为这种或这一类格式指定一个文件类型图标,考虑到不同用户有不同的喜好,千

千只提供图标自定义的功能,而不提供任何很多默认的图标。

问:为什么千千静听的皮肤这么少?

作者本人不擅长美工,又找不到专业人士帮助千千(因为千千免费)。其实千千静听的

皮肤格式是比较简单的,是基于XML格式的用ZIP压缩一下而已,有兴趣的网友可以自己把皮

肤文件改为.zip后缀后解开来看看,具体请看主页上皮肤这一页:http://ttplayer.com/ski

n.htm。

问:为什么千千静听不支持Winamp的皮肤呢?

由于播放器的功能不相同,皮肤的设计和实现也不相同,很多千千静听需要的皮肤的元

素Winamp的皮肤里都没有,例如千千静听需要歌词秀窗口,但Winamp本身就没有这个窗口的

皮肤。论坛上有不少网友从winamp改造过来的皮肤,有兴趣不妨去看一下。

二。播放

问:为什么在Win98下不支持播放CD?

Win98没有自带数字CD读取所需的驱动,可以到主页上去下载这个通用的驱动程序,地

址是:http://ttplayer.com/aspi32.exe

问:为什么我正在播放CD的时候,就不能转压CD为其它格式了?

因为Windows下以数字方式访问CD是独占的,所以同时只能由一个任何来访问CD。如果

你想转压,请先停止播放。

问:千千有没有能自动在线查询到CD信息的功能?

4.3以后的版本,提供了freedb的在线查询CD信息的功能,但非正版的CD很可能找不到:

)。

问:为什么我用Windows Media Player制作的WMA文件无法播放?

Window Media Player在制作WMA文件时默认启用了"数字版权保护"机制,而要支持这种

文件,必须得到微软的官方支持,考虑到手续比较麻烦所以目前还未实现对它的支持。所以

在制作WMA文件的时候请尽量不要使用数字版权保护。

问:回放增益(自动音量)是怎么回事,应该如何使用?

"回放增益信息"是通过对音频文件的扫描分析检测到的一个最佳的增益值,

在以后的播放中如果使用这个增益值就可以把音频文件的音量调整到最佳的水平,从而减少

甚至避免不同音频文件之间的音量差异.

可以通过手动扫描或自动扫描来得到这个信息,手动扫描就是在播放列表上右键某些文

件,通过“扫描增益信息”来得到,或者选中千千选项的“播放”页中的“自动扫描”,这

样在播放的同时,就会自动扫描没有这个信息的文件(如果已存在就不会再扫描),但要注

意的是,如果播放被中断或用户拖动了播放进度,扫描就会停止,只有完整的播放一遍之后

才能得出这个信息。

问:为什么我启用了回放增益以后,有些歌的音量不正常?

增益信息是以文件标签的形式保存在文件中的,可能是增益信息别的软件破坏了,所以

导致音量不正常,这时,你需要手动重新扫描一下。

问:千千支持哪些音频输出方式?

千千支持Waveout(波形输出),DirectSound,Kernel

Streaming(内核音频流),ASIO这四种方式,但在不同的系统和声卡环境下,并不是每一种

都能支持的,特别是ASIO,更需要声卡本身的支持,一般只有比较高档的声卡才能支持。

问:这些音频输出方式各有什么特点?

Waveout是微软最早提出的音频流输出方式,所以它的兼容性也就好,几乎所有的声卡

都支持;

DirectSound是微软DirectX的一个组合部分,它的兼容性也很不错,并且在有多个程序

需要播放音频的时候能提供高可靠的保障,并且使用这种方式可以让千千静听更好的支持声

音的淡入淡出效果;

Kernel

Streaming是微软底层使用的音频流方式,具体更低的延时性,用于对延时性要求比较高的

场和,因为更底层,所以效率更高,而且受别的程序的影响也更小,如果你用它来播放时,

把系统音量里的波型“静音”,就可以实现只听到播放器的音乐,而不受其它程序的声音的

影响。但Kernel Streaming同样对声卡和驱动有一定的要求。

ASIO是Steinberg提出来的比较新的音频流输入输出接口,一般用在对实时性要求很高

的专业场合,对声卡的要求更高。

理论上来说,这四种方式对输出的音质没有任何影响,因为这些方式只是把声音的数字

信号传输到声卡的数模转换器(D/A),而不会对信息有任何的改变。

问:像AxASIO之类的软件能让声卡不支持ASIO的电脑也使用ASIO,有什么好处吗?

AxASIO或ASIO Kernel-Streaming Driver之类的软件,都是在Kernel

Streaming的基础上模拟出来的ASIO,所以效果反而没有直接用Kernel

Streaming好,而且设备不当的话还影响正常的播放。

问:千千使用的MP3解码器是哪一个?

千千使用的是最新版本的mpg123-0.59s-pre,它是目前已经的开放源代码中最好的MP3

解码器之一,无论是精度来是速度都是很出色的。千千早期版本使用的是MAD,但在个人PC

上,MAD的解码速度比mpg123要慢70%甚至更多,而绝对精确和mpg123相比还略有差距,所以

后来就改用mpg123了。

问:是不是把播放时的缓冲长度设得越高播放越流畅?

一般来说,只要设置1000-2000毫秒的长度就可以了,太长只会增加资源占用。

问:播放时的输出比特是越高越好吗?

不是,目前几乎所有的音频源都来自16比特的CD,而且一般的声卡只支持16比特的输出

,所以基本上选用16比特就可以满足绝大多数的要求了,千千的“原始比特”就是指音频本

身的比特数,因为碰到有些24比特的WMA,千千就会自动选择24比特输出。

要注意的是,很多支持ASIO的声卡,最佳的输出比特数是32或24,所以这时选择相对应

的比特数就能提供最佳的性能(因为不需要再做额外的转换)。

问:采样频率转换一般用在什么场合?

对于AC’97规范的声卡(主板自带的基本上都是这类声卡),硬件只支持48000Hz这一

种采样频率,而CD的音频是44100Hz的,从CD转换过来的MP3等大多部格式也是44100Hz的,

也就是说在这种类型的声卡上,在数字信号转成模拟信号之前,还要对采样频率做一次转换

,如果驱动程序提供的转换程序不是很好(据说为了提高性能,都采用比较一般的算法),

就可以尝试用播放器提供的软件转换功能。但用于这类声卡来说,本身的输出音质就不是很

理想,所以用不用更好的转换算法意义并不大,而且由于软件转换需要CPU做更多的事情,

性能肯定受到影响。

问:高频抖动又是什么意思?

一般的音频编解码器,都是用高比特来处理16比特的音源的,在最终播放输出的时候,

又得把高比特降低到16比特来输出(因为一般的声卡只支持16比特的输出),所以就会有量化

的副作用,就好比把一幅真彩的图片转成256色,如果转换的程序不好,就会有大块的很难

看的色块出现,于是就产生了一种抖动的技术,就是采用插值算法,在转换前用一些随机的

噪声来处理一下,以减少量化带来的副作用。

一般来说,如果音源和输出时的比特数相同,就不需要再用抖动了。并且抖动只对低于

16比特的输出比较好的效果。

三。文件标签

问:什么是文件标签,有什么用途?

文件标签就是指一个歌曲文件的标题(歌名)、艺术家(演唱者)等的信息,就好像是一个

人的姓名一样。有了文件标签,就能准确的知道这首歌的来源,就能通过这些信息准确的本

机或网上查找到相应的歌词文件。

问:如何填写或编辑文件标签?

通过千千的“文件信息”对话框,就能编辑标签信息。有两种方法可以显示这个对话框

:1。在播放某首歌的时候,在主窗口上右键的主菜单里选择“查看窗口”里的“文件信息

”,这时显示的就是当前正在播放的这首歌的文件信息;2。在播放列表里选中某首或某些

歌曲,在右键菜单中选择“文件信息”,就能显示选中文件的信

息了,如果你选的是多首歌,就能同时编辑多首歌的信息。

问:千千支持哪些类型的标签?

千千几乎支持所有已知的通用标签类型,比如对于MP3文件,就支持ID3v1/ID3v2、APE

;对于Ogg文件,就支持Ogg本身的Vorbis标签;而对于APE、MPC之类的新型文件格式,同样

支持APE标签,对于iTunes的MP4/M4A

格式,千千也同样支持它的标签类型;要注意的是,WMA的标签的写入需要安装微软的media

9或更新的版本,但

读取就不需要任何额外的支持了;而对于RM文件,千千目前只支持最基本的几个标签字段。

问:千千嵌入的歌词是怎么回事,和标签有关吗?

千千嵌入的歌词就是以标签的形式保存在歌曲文件里的,字段名是"Lyrics",对标签的

操作对嵌入的歌词

同样有效。

问:如何在播放列表的歌曲标题里显示我想要显示的标签字段?

可以在千千选项里的“播放列表”页里设置“有标签时的格式”,只要用“%(英文字段

名)”这样的字符串就能表示任何你想要显示的字段了,当然前提是你得知道这些字段的英

文名称,你可以通过上面讲到的“文件信息”对话框的“高级模式”来看到所有这个文件里

已存在的标签字段的名字和值。

问:某些文件显示的是乱码的标签,有没有办法改正?

可以尝试使用“文件信息”里的内码转换功能来找到正确的内码。?

问:为什么千千静听在列表里查找文件比较慢?

为了节省资源占用并且提高文件添加到列表的速度,千千静听默认是当播放列表在显示

某个音频文件时才会读取信息,而像foobar2000这样的播放器则是在第一次添加时就读取了

所有文件的信息,所以查找时就不需要再读取了。事实上千千静听也提供了和foobar2000

一样的文件信息操作方式,请在选项里的“播放列表”页中将读取信息改为“添加”时,并且选

上“缓存文件信息到播放列表”。?

四.歌词

问:怎么使用歌词秀,为什么我自己从网上下载的歌词就不能显示?

歌词文件有一定的格式,一般以LRC和TXT后缀,每句歌词前面有[00:00.00]这样的时间

标签,如果没有这些标签的歌词是无法显示的,可以用千千静听自带的歌词编辑器来为每句

歌词加入时间标签,保存后就可以正常显示了。建议把歌词文件以“歌手名 -

歌曲名.lrc”这样的方式命名,再把存放这些歌词的目录加到千千的本地搜索文件夹里,以

后就不用再一一关联了,当然你的歌曲文件应该也有相应的歌手名和歌曲名信息,这样才能

保证播放器找到正确的歌词文件。

问:为什么歌词下载会失败?

有以下几种可能的原因:

1.文件信息不正确,以至于在搜索时无法正确匹配;

2.歌曲太新,以至于这些歌词网站都还没有收集歌词;

3.如果你安装了防火墙,可能网络请求被过滤而无法连接到歌词服务器;

4.歌词服务器可能出现问题,或者正在维护。

问:为什么没有让用户自己输入或选择歌词网站的功能?

歌词下载网站的搜索和下载方式都不相同,如果要实现用播放器来自动处理需要编写相

应的搜索和下载程序,并不是简单的输入一个网址就行了。

问:为什么我下载了正确的歌词,但下次播放还是显示错误的?

千千加载歌词的顺序是内嵌歌词->关联歌词->本地搜索->在线搜索,很可以内嵌或关联

了错误的歌词,或在本机上有错误的歌词文件,这时你可以按上面的顺序来检查优先级高的

歌词,如果发现有错误,就删除或修改就行了。具体操作请看歌词秀的右键菜单或选项里的

和歌词相关的参数。

问:我想让下载后的歌词自动以歌曲相同的文件名保存,并且直接保存到歌曲所在的目录,

这样我找起来很方便,怎样才能做到?

在千千选项的“歌词搜索”页里,有相关的参数可以设置。

五.其它

问:我想在播放列表里直接删除硬盘上的文件,“物理删除”为什么是灰色的?

千千提供了物理删除的功能,但考虑到用户可能会误操作,所以默认是禁用的,你可以

在千千选项的“播放列表”页中找到启用这项功能的选项。

问:我想从播放列表里直接到文件拖动到其它地方,比如我的U盘或MP3机,可以吗?

可以,在播放列表是选中要操作的文件,注意用左键按住标题(否则就变成选选择文件

了,这和windows的资源管理器操作一样),拖动文件到你想要到地方,如果想复制,就按

再Ctrl键,操作和资源管理器完全一致。用这种方法,你甚至可以直接把文件拖到回收站上

而删除你不想要的文件。

问:我想把CD压缩成MP3、WMA或APE,用千千静听可以做到吗?

可以,通过添加文件或添加目录来把CD上的所有音轨文件拖到播放列表里面,因为数字

方式抓取音轨是独占访问的,所以如果正在播放CD上的文件或是音轨,请先停止播放,然后

在播放列表里选中要转压的文件(多选就可以进行批量转换),点右键菜单的“转换格式”

命令就可以转换了,如果在压缩格式列表里没有找到MP3或WMA,请重新安装千千静听。用同

样的方式可以转换任何千千静听可以播放的文件(例如APE等格式转换到MP3、WMA)。

问:为什么其它的播放器对RM的支持比千千静听好?

其它播放器用的是Real Player的播放器核心,其实就相当于在使用Real

Player在播放,这和直接用Real

Player来播放没多大区别,而且这个核心占用内存实在是比较厉害,所以作者不想采用这种

方式。其实Real公司对RMF文件的格式只公开了部分内容,有些细节还没有完全公开,特别

是和编码格式有关的部分,在现有的条件下,千千静听只能做到这样了,希望将来能得到更

多的技术支持。

问:如果我的电脑上没有安装Windows Media Player 9或更新的版本,还能播放WMA吗?

当然可以,只要在安装时选中支持WMA就行了,千千静听支持WMA只用到了微软的WMA解

码器组件,就是安装目录下的wmadmod.dll文件,只有400K左右:),而且还支持WMA文件信息

的读取。

问:我要把一台电脑上的千千静听拷到另一台电脑上使用,所有的设置都还有用吗?

千千静听的设置都保存在安装后的目录下的TTPlayer.xml文件下,只要把这个文件和程

序一起复制别的电脑上就可以了,根本就不需要重新安装,当然有些目录可能会因为不同的

电脑而不一样,需要注意一下(比如歌词下载的保存目录会因为电脑的不同而无效)。

问:我对INI文件比较熟悉,为什么不用INI文件来保存这些设置?

INI是比较“过时”的配置文件,读取和分析都比较慢,扩展性也比较差,而XML是最好

的用于保存各种信息的格式,而且现在对它的支持也越来越广泛,所以用XML是更好的选择

问:为什么我在千千静听里使用DFX看不到DFX的窗口?

如果你的电脑上安装了Winamp,并且DFX也是安装在Winamp上,那只要把Winamp的Plugi

ns目录设置为千千的Winamp音效目录应该就不会有任何问题了(默认情况下千千会检测到Wi

namp的插件目录并且自动设置),如果你没有安装Winamp,而把DFX安装到千千的目录上,

你就应该手动把DFX安装后的目录下的Plugins目录设置为千千的Winamp音效插件目录。

问:为什么不支持视频?

作者设计千千静听的原则就是用来播放音频,至于要看到视频图像,有更多更好的选择

,相信大家心中已经都有自己最喜爱的视频播放器了。

问:千千静听支持哪些网络协议的点播?

目前千千静听支持HTTP和MMS方式的在线点播,其中MMS协议需要Media Player 7或更高

的版本支持。暂时不支持网上比较流行的RTSP协议。

问:千千静听是用什么语言写的,为什么支持这么多的格式还这么小巧?

千千静听是用VC6编写的,如果你还知道WTL,那么作者可以告诉你,界面是用WTL来编

写的,相对于MFC的庸肿,WTL更适合编写快速、精简并且占用资源少的程序。当然很多音频

编码库是用C语言来写的,这样更加高效而且小巧。

问:随着用的人越来越多,作者是否会考虑收费或者注册?

作者不会因为任何理由违背承诺来向用户收费!

问:为什么不在网站上做些宣传,好让更多的人知道?

我一直改进千千的理由不是为了钱,所以用的人多了对我本人来说也不见得就是好事,

一个人做软件毕竟很辛苦,用的人太多引来的问题和麻烦也就更多。

问:我经常在某些论坛上看到推荐千千静听的贴子,是不是作者请的“枪手”在推荐?

这是最可笑的问题,但确实有不少网友来问!

我的回答是“绝对不是”,一方面上面也说过了,我本人对宣传不感兴趣,另一方面,

我也请不起所谓的“枪手”。问问你自己或你身边的朋友,你们是如何知道千千静听的,是

在媒体上看到的广告?是在论坛上看到大肆的推荐?还是朋友直接推荐给你的?

作者并不反对网友到不同的论坛上推荐千千静听,如果你认为千千是一个你喜欢的并且

值得推荐的软件,那么有什么理由不让你去推荐给更多的人用呢?!

问:为什么取名叫“千千”,好像不太响亮哦?

作者很喜欢陈慧娴的歌,相信大家都知道为什么会用“千千”这个词了吧。其实当时之

所以会自己写一个播放器也是因为觉得Winamp很多地方不太好用,总觉得要是有一个自己的

播放器来听自己喜欢的歌那该多好啊,所以就有了今天的千千静听,希望大家会喜欢。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/695140.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-02
下一篇2023-08-02

发表评论

登录后才能评论

评论列表(0条)

    保存