在Mac下喜欢播放音乐的各位巨巨应该有和某类似的经验吧,iTunes属于比较重的应用程序了,只是为了听个音乐,不需要经常CoverFlow的情况下会觉得iTunes很累赘,甚至还有人就是不喜欢iTunes。Mac下面缺少像foobar这样即强大又可定制化的音乐播放器。之前某有在Linux下使用mplayer以及mpd播放音乐,确实是很方便,可定制性也不错;然而在OSX下总想用一些比较native的程序。
这次就推荐一下Sonora这个OSX下原生的音乐播放程序,主要的特点呢。
- 界面比较漂亮,直观的可以用专辑封面浏览曲库,包括播放的队列
- 快速,因为是使用OSX的原生Cocoa,加上Core Animation来写的,自然性能棒
- 支持许多格式,嗯,项目描述里写
tons of
,不过也就是一些常用的w,像是tak和ape应该还是不支持的 - 播放队列,这个用过mpd的都知道,这个播放队列模式能够满足各种不同的播放顺序和控制需求呢
- 另外还支持Last.fm (需要编译的时候填进Last.fm的API Key)
如何安装?
the easy way ?
嗯,某很贱,所以没试这个方式,上面给的链接应该可以直接download,估计直接双击一下就能运行了。
然后直接往后看效果吧XD
the hard way !
The hard way always makes your life much easier! – unknown
XDDDD 所以各位巨巨愿意继续看下去就是喜欢折腾的人了,
项目主页在github上面,由于项目本身是Cocoa写的,并且有不少依赖,所以按照项目里README的说法,需要安装一些依赖。不过大家可以先把Sonora的源代码clone下来作准备
这里默认大家都已经有Xcode command line tools和homebrew之类的工具
根据Core Data生成obj-c代码的工具,在homebrew
里也可以直接安装,不过某这里不知道为什么编译完运行总是报segment fault 11
,所以只能选择安装二进制包了。
管理Cocoa lib的项目,本身是用ruby写的,其实某觉得就是个bundle+gem嘛XDDD
某这里用的ruby是rvm里面的,也不影响使用
好了,前置依赖完成后我们需要编译打包的依赖,同样有2种选择
更快的方式!
直接下载Libraries.zip,并解压到Sonora项目根目录
hard way!
这里要提醒一下,项目README里提到的前2步都只是拉取cocoapods的仓库信息,就类似于homebrew update
哪样。
按照Best way里提示做准备好源代码。
这里需要提醒一下的是,如果各位巨巨和某一样是使用10.7的话,需要在Podfile里第一行那里修改一下
platform :osx, "10.7" # <= 这里加一个参数10.7,否则默认是10.6的在安装AFNetworking的时候会提示不兼容
之后还有一步,某猜测应该和SFBAudioEngine.framework源代码的发布方式有关不能包含在项目里,所以需要手工去下载音乐解码器的lib,把Frameworks解压到Sonora/External/SFBAudioEngine/
下面
这里就可以看到这些lib里支持的音乐格式,基本包括了常见的
如果你有Last.fm的帐号并想使用的话,在./Sonora/Classes/SNRConstants.m
里填写并保存
最后打开xcode的项目! (注意是打开Sonora.xcworkspace文件,而不是一般的xcodeproj)
解决一下项目链接的依赖
在某这里编译的时候发现好几个错误
Undefined symbols: _SCNetworkReachabilityCreateWithName
请教了Google老师后,发现是项目Linker缺少SystemConfiguration.framwork这个依赖,按照这篇文章提到的方式添加一下就好(某用的是Xcode4.5,是在项目的Summary那个标签页的Linked Frameworks and Libraries添加的),编译完成后就可以运行啦XDDDD
如果遇到什么问题的话,可以去github上各个项目的issue里提,大部分问题应该都可以得到解决的。
最后祝大家enjoy music XDDDD
__END__