当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 39 篇帖子 ]  前往页数 1, 2, 3  下一页
作者 内容
1 楼 
 文章标题 : [原创]xmms2:现阶段唯一完美支持cue+ape的播放器(ape,wma,mpc等各种格式通吃+lastfm播放)
帖子发表于 : 2007-10-06 10:40 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
作为个人觉得最好用的播放器,xmms2有以下几点优点:
1、资源消耗小
本身不需要图形界面,作为后端daemon形式存在,非常省资源。

2、通用型播放器,从音乐格式到输出到tag元数据库管理到网络收听,音乐社区功能,无所不包。
音乐格式:aac,avcodec(asf,3gpp……算了,其实这个就是mplayer的ffmpeg计划,它能支持的,xmms2就能),flac,mp4,wma,asx,mad(for mp3),musepack(mpc),faad,vorbis(ogg),当然,还有我们花很多时间去“转码”的ape格式。
另外,支持jack服务,所以也可以间接的支持midi播放。

元数据库管理:用sqlite做后端,支持媒体库,收集库,播放列表等不同级别的媒体文件整合。内部使用sql搜索,管理
及其方便,没有概念的可以想象成为没有图形界面的amarok。支持保存播放列表,支持m3u。
另外,对于中文用户常见的乱码问题,支持id3v1使用非标准编码。所以也没有了所谓的转tag编码的麻烦。同时支持id3v2

网络收听:支持mms,使用curl库来支持其余http之类的流式播放,也支持icecast的ogg流媒体,支持rss标签,支持lastfm和lastfm meta,支持samba。支持gnome的vfs系统。

输出:支持alsa,oss,diskwrite。
数据传输:支持tcp,也可以unix ipc通信,所以可以很灵活的指定。客户,服务器结构,但是是作为一个user daemon的形式存在,所以可以不需要root的服务启动权限。同时支持replaygain(自动调整不同音乐文件的音量),当然,如果以后有什么音效插件,也可以在这一步“传输”中filter一下~

语言binding:本身自带一个简单的命令行客户端xmms2,但是有ruby,python,c++等各种语言binding,所以客户端的建构是很容易的。

3、总的来说,xmms2的模块化作的非常成功,解码,传输数据,输出,数据库,每一步都是以插件的形式存在,所以整合新功能很容易,而且没有构建在一些臃肿的东西上,保持了精简和高效(例如bmpx就绑死在了gstreamer上,可是我实在是不喜欢gstreamer的臃肿,所以只好放弃),可以说,xmms2的正式发布之日,肯定就是它一统江湖的时候。现在虽然还在开发过程中,但它能给我们的体验,已经超越了绝大多数的播放器。也许mpd可以和它相抗衡,但是mpd的方式,要增加功能实在是不如xmms2方便。而且现阶段的xmms2已经超越了mpd的功能太多,也许只有mpd2能够和xmms2一争长短。

关于xmms2的使用,yhlfh兄已经有篇很好的文章了,这里我就不废话了。
http://forum.ubuntu.org.cn/viewtopic.php?t=71986&highlight=xmms2

要讲讲的是ape的播放,ape格式是monkey-audio.com的非自由的格式。在04年有过一个mac-port(monkey audio codec)的项目,但是这个项目很快由于版权的原因在sf上被撤了下来。现在所有的转码、播放插件等都是基于这个项目的,最后的版本是3.99-u4-b4吧,我以前做过deb包,后来又有不少的兄弟也做过,由于都是非官方的,所以有的叫monkey-audio,有的就叫mac,或者是直接叫libmac什么的,反正就是喜欢叫什么名字就叫什么吧,看做包的人的兴趣。由于源里的xmms2肯定是没有编译mac支持的,所以我们要自己编译。

由于xmms2不是使用的通常的autotools工具链来作编译系统的,它使用一种特殊大的waf编译系统。只要我们系统中有了mac-port的开发包,它自动就会加上mac的支持,所以,你要检查的是:你的系统中有没有这样的文件:
/usr/include/mac/*
有这个目录,说明你以经装上了。那么直接
代码:
apt-get builddep xmms2
apt-get source xmms2
cd xmms2***
dpkg-buildpackage -rfakeroot

就可以完成了。
如果没有,那么,可以参考:
http://forum.ubuntu.org.cn/viewtopic.php?t=59920&highlight=ape

xmms2已经内建了lastfm的插件,可以处理lastfm://协议。我们只要在firefox中设定好关联就好了。
在自己的bin/的path中添加脚本:
#!/bin/sh
代码:
xmms2 clear
xmms2 add $1
xmm2 play

about:confg
新建字符串键
代码:
network.protocol-handler.app.lastfm

值为你刚才建好的这个脚本,就可以在线听lastfm音乐广播了这样再也不担心自己听的都是老歌~out于时代鸟。

作为开发中的版本,现在released的是0.2DrJekyll版本。这个版本如果没有下面的patch,那么可以播放ape,也可以正确识别cue中的标签信息,但是无法对cue中的每首歌自动寻址。也就是说,仍然是每首歌都在ape文件的开始播放。下面是修正这个问题的补丁:(gentoo的ebuid和补丁我已经放到sir的gentoo版了。雕,xhy,ib你们就直接去那吧~:D)

代码:
commit cee22c84e6be8ae4c89c333695fa5b50c63ea036
Author: Florian Ragwitz <rafl@debian.org>
Date:   Sun Sep 30 00:15:57 2007 +0200

    BUG(1637): honor startms.

diff --git a/src/xmms/output.c b/src/xmms/output.c
index 6f5933c..4f5e0b1 100644
--- a/src/xmms/output.c
+++ b/src/xmms/output.c
@@ -251,6 +251,7 @@ typedef struct {
    xmms_output_t *output;
    xmms_xform_t *chain;
    gboolean flush;
+   guint startms;
 } xmms_output_song_changed_arg_t;
 
 static void
@@ -285,6 +286,21 @@ song_changed (void *data)
    if (arg->flush)
       xmms_output_flush (arg->output);
 
+   if (arg->startms > 0) {
+      xmms_error_t err;
+      xmms_error_reset (&err);
+
+      XMMS_DBG ("Got startms. Trying to seek to %u.", arg->startms);
+
+      arg->output->filler_state = FILLER_SEEK;
+      arg->output->filler_seek = xmms_sample_ms_to_samples (arg->output->format, arg->startms);
+      g_cond_signal (arg->output->filler_state_cond);
+
+      if (xmms_error_iserror (&err)) {
+         XMMS_DBG ("Failed to seek to startms");
+      }
+   }
+
    xmms_object_emit_f (XMMS_OBJECT (arg->output),
                        XMMS_IPC_SIGNAL_OUTPUT_CURRENTID,
                        XMMS_OBJECT_CMD_ARG_UINT32,
@@ -404,6 +420,8 @@ xmms_output_filler (void *arg)
          xmms_medialib_entry_t entry;
          xmms_output_song_changed_arg_t *arg;
          xmms_medialib_session_t *session;
+         gchar *tmp;
+         gint startms = 0;
 
          g_mutex_unlock (output->filler_mutex);
 
@@ -435,10 +453,21 @@ xmms_output_filler (void *arg)
             continue;
          }
 
+         if (tmp=xmms_xform_metadata_get_str (chain, "startms")) {
+            gchar *endptr;
+
+            startms = g_ascii_strtoull (tmp, &endptr, 10);
+
+            if (*endptr != '\0') {
+               startms = 0;
+            }
+         }
+
          arg = g_new0 (xmms_output_song_changed_arg_t, 1);
          arg->output = output;
          arg->chain = chain;
          arg->flush = last_was_kill;
+         arg->startms = startms;
          xmms_object_ref (chain);
 
          last_was_kill = FALSE;


打上补丁之后,
代码:
xmms2 addpls aa.cue

此时,已经分不出cue中的每首单曲和单独的文件有什么不同了。也可以加入mlib中。
手头上没有debian,希望有兴趣的兄弟做个带上这个patch的xmms2。

xmms2现有插件:
A、解码器
引用:
* FLAC
o FLAC Decoder
* MOD
o Modplug Decoder
* Monkey's Audio
o Monkey's Audio Decoder
* MPEG-1 Part 3 Layer 3 (MP3)
o MAD Decoder
* MPEG-4 Part 3 (Advanced Audio Coding - AAC)
o FAAD Decoder
* Musepack
o Musepack Decoder
* Ogg Vorbis
o Vorbisfile Decoder
* SID
o SID Decoder
* WAVE audio files
o Wave Decoder
* Windows Media Audio
o WMA Decoder


B、播放列表
代码:
    *  ASX - Advanced Stream Redirector xform, reads ASX playlists (made popular by Windows Media Player)
    * cue - Cuefile xform.
    * HTML - HTML xform.
    * m3u - M3U xform.
    * pls - PLS xform.
    * RSS - RSS xform, loads RSS playlists, like podcasts.
    * XSPF - XML Shareable Playlist Format xform.


C、传输:
引用:
* CDDA - Compact Disc Digital Audio xform, reads audio CDs.
* cURL - cURL xform, reads http, https, ftp, and other streams.
* DAAP - Digital Audio Access Protocol xform, reads from DAAP shares (made popular by iTunes)
* file - File xform, reads files from the local filesystem.
* gnomevfs - GnomeVFS xform, uses Gnome's virtual filesystem to access many types of media.
* lastfm - Last.fm xform, reads Last.fm streams.
* MMS - Libmms xform, reads from MMS (Microsoft Media Services) streams.
* samba - Samba xform, reads from SMB shares.

D、元数据管理:
引用:
Metadata xforms strip out metadata like ID3 tags and vorbis comments from streams.

* icymetaint - ICY xform, extracts info from ICY headers in ShoutCast streams.
* ID3v2 - ID3v2 xform, extracts ID3v2 tags.
* lastfmeta - Last.fm xform, extracts info from Last.fm streams.
* ofa - Libofa xform, MusicDNS fingerprinting.


E、音效:
引用:
Effects modify the raw audio data before it is sent to the output.

* equalizer - Equalizer xform, to tune different frequency bands to taste.
* replaygain - ReplayGain xform, normalizes audio according to settings stored in the file.
* vocoder - Vocoder xform, produces a cool vocoder effect.
:D


最后由 xiechy 编辑于 2007-10-08 18:20,总共编辑了 4 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-10-06 10:54 
头像

注册: 2006-10-31 11:02
帖子: 1258
地址: Beijing
送出感谢: 0 次
接收感谢: 0 次
audacious也不错
上述功能也都具备


_________________
图片
我也喜欢蓝妹妹......


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-10-06 11:13 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
jupengfei 写道:
audacious也不错
上述功能也都具备

audacious支持mms?没有吧~支持icecast?也没有吧,支持内置数据库管理?也没有吧~支持lastfm?我可说的不是一个scrobbler ~是lastfmplayer那样的效果;还有samba?还有网络播放?

audacious是从xmms算是fork出去的项目,除了gtk+以外,其他的xmms的缺点都有。可以说,bmp,bmpx,audacious这一类从xmms中fork出去的项目,只能是在xmms2没有完善之前临时性的修补,没有架构上的优势。最终是会被淘汰的。


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-10-06 11:35 

注册: 2007-01-03 11:53
帖子: 106
送出感谢: 0 次
接收感谢: 0 次
呵呵。linux下的音乐播放器效果确实不大行,不过我不在乎,反正我的本本音箱烂。。。。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-10-06 11:57 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
lzqhhx 写道:
呵呵。linux下的音乐播放器效果确实不大行,不过我不在乎,反正我的本本音箱烂。。。。


音效和alsa/oss有关,但是其实现在已经并不差了,只是所谓的那些“特效”不多。以前用了xmms的修改过的立体声特效,其实效果也很好的,不过这是“味精音乐”,并不值得夸耀。

还有,win下像xmms2这样优秀的播放器,说实话,我觉的还没诞生吧。


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-10-07 13:52 

注册: 2007-07-22 1:05
帖子: 20
送出感谢: 0 次
接收感谢: 0 次
我也是最近才发现了这个好东西,挺不错的。 可惜不支持tta和wavpack。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-10-07 13:58 
头像

注册: 2007-05-26 11:50
帖子: 156
送出感谢: 0 次
接收感谢: 0 次
xiechy 写道:
jupengfei 写道:
audacious也不错
上述功能也都具备

audacious支持mms?没有吧~支持icecast?也没有吧,支持内置数据库管理?也没有吧~支持lastfm?我可说的不是一个scrobbler ~是lastfmplayer那样的效果;还有samba?还有网络播放?

audacious是从xmms算是fork出去的项目,除了gtk+以外,其他的xmms的缺点都有。可以说,bmp,bmpx,audacious这一类从xmms中fork出去的项目,只能是在xmms2没有完善之前临时性的修补,没有架构上的优势。最终是会被淘汰的。


呵呵,其实够用就好了,我机器上音乐全是ape和flac格式的,一个xmms加上mac解码器就够了。


_________________
---------------------------------------------------------------------
我终身奋斗的最低革命纲领:农妇__山泉__有点儿田


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-10-07 21:18 
头像

注册: 2007-03-13 17:26
帖子: 2254
送出感谢: 0 次
接收感谢: 1
它没有图形界面,怎么用噢??


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-10-07 21:37 
头像

注册: 2006-12-07 17:32
帖子: 234
送出感谢: 0 次
接收感谢: 0 次
图也贴几张看看啊。
还有中文支持好不好的?


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-10-07 21:57 

注册: 2006-12-14 3:00
帖子: 614
送出感谢: 0 次
接收感谢: 0 次
带cue的flac或者ape支持如何?我用amarok感觉总是对cue支持太差,定位不准确


_________________
提问的智慧


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-10-07 22:20 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
windwiny 写道:
它没有图形界面,怎么用噢??

有图形客户端,很多,从网页,python,gtk,qt,
各种都有,但我没有试过,我自己用命令行原配客户端就觉得很方便了。


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-10-07 22:22 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
wth123456 写道:
图也贴几张看看啊。
还有中文支持好不好的?


它是daemon~说过了的,客户端只是浮云而已。


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-10-07 22:27 
头像

注册: 2006-10-31 14:49
帖子: 1617
送出感谢: 0 次
接收感谢: 0 次
个人觉得还是应该做一个功能较全的但是占用资源少的小图形界面。
新世纪的软件也应该有新世纪的时尚品位


_________________
Borders are meant to be crossed


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-10-07 23:22 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
andrew_t 写道:
带cue的flac或者ape支持如何?我用amarok感觉总是对cue支持太差,定位不准确

对cue等playlist的支持是用毫秒计算的。


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-10-07 23:24 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
依寻依然 写道:
个人觉得还是应该做一个功能较全的但是占用资源少的小图形界面。
新世纪的软件也应该有新世纪的时尚品位

客户端有很精简的,也有很繁复的,可以自己选。客户端浮云。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 39 篇帖子 ]  前往页数 1, 2, 3  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译