Closed lingnand closed 10 years ago
如果lord可以一下子cache 3~4 首歌会不会好一些。。?
感谢你的反馈。
lord目前确实是有些问题:只有当一首歌cache完成后,才能切歌。 在网络不好,播放位置还没cache到时,mpd会stop然后尝试切歌。lord阻止了切换到下一首歌(直到cache完成),不然可能导致每首歌听几秒就切到下一首。
我目前还不知道怎么在lord/libmpd中区分用户是主动next还是因为网络卡顿导致的stop。如果能区分的话,就可以在用户主动next时,停止当前下载。
我早就有计划在配置文件中加一个选项,切换高码率和普通码率。在上一个问题暂时无法解决的情况下,网络不好的用户可以通过切换码率来流畅收听。
cache 3~4首歌操作起来似乎比较麻烦。
commit 8e2981049c 现在配置文件是yaml格式,编辑lord.yaml,将highquality设为false切换到普通音质。
现在是不是jing的api改了啊;好像不好用了
报什么错?有没有试试把lord.yml删掉
呵呵 我自己问题,应该是太久没重新登陆token过期了。。
我现在在play around with Jing.FM api, 有些问题想请教下
好吧 第二个问题解决了。似乎是tid
其实目前lord和jinkell都没用上post_heard_song,也就是说在lord和jinkell里收听,不会记录到jing.fm。
在post_heard_song之前,似乎需要POST /click/playdata/post
至少6次。我也没实际试过,但在网页收听jing.fm时,可以观察到连续的(第一次间隔10秒,然后间隔30秒)POST /click/playdata/post
后,会post_half,然后才post_heard_song。
有uid和tid,jing.fm则会把tid对应的歌曲记录到你的收听记录里。欢迎交流
fetch_pls 里面 abid aid d dtime fs y 各是什么意思啊?还有fid给的image地址前缀应该是什么?
abid - album id aid - artist id d - duration dtime - 未知 (一般为空) fs - file size (bytes) y - 未知 (一般为空)
在Dragonfly或Developer Tools里找一个album art的地址:
http://image.jing.fm/album/AM/2012/0405/09/XC/AM2012040509XCl.jpg (大图),
http://image.jing.fm/album/AT/2012/0405/09/XC/AT2012040509XCl.jpg (小图)
它对应的
"fid":"2012040509XCl.jpg","fs":10071501,"mid":"2012040509KEK.m4a"
image地址中的2012/0405/09
来自mid,XC
来自fid
恩 现在这些api方面的东西都搞定了,唯一的就是mp4 AAC decode的问题。你知道什么类似mpg123的简单的mp4 decoder么?
我之前也想找类似mpg123的mp4 decoder,不过没有找到。所以jinkell用的是mplayer。我在豆瓣小组发的贴有人回复说可以考虑gstreamer,但是我也没试过。http://www.douban.com/group/topic/37001485/
来汇报下我尝试的情况。 我看了mpd的source code似乎是基于ffmpeg的,所以先试了用ffmpeg的libavcodec, 后来发现faad的api好像更简单所以就转用了faad。可是做完后才明白faad其实只是单纯的aac stream decoder,没办法dig into歌曲的mp4 container。 现在又重新用回了libavcodec。mp3什么的都能解了,但是比较痛苦的是m4a的sample format还不一样,decode之后还要resample。
赞。基于mpd的好处是有丰富的客户端可以用,比如显示歌词,同步到last.fm等等 要给Lord增加like/ban功能也不难,lord参考了mpd,在播放时会将当前歌曲信息保存到state文件,增加两个commands就可以like/ban了。
今天晚上又发现两个比较有用的method
Method call | Argument | Description |
---|---|---|
jing.fm/api/v1/app/fetch_top | ps=<number> |
Return an array of songs similar to calling fetch_pls |
jing.fm/api/v1/app/fetch_natural | ps=<number> |
Return an array of {"fid":"<album art>", "sw":"<search term>"} which contains the trending search terms |
在2.20131201版本后,lord在mpd不可用的情况下会fallback至mplayer。 mplayer会自动边stream边play,我看可以把这个issue关了
这个问题现在彻底解决了,(刚发现)mpd自0.18版本以后,已经可以直接播放远程的mp4文件,而不用下载再播放。
Library dependencies have been updated. Various obsolete plugins have been removed (e.g. soup, mp4ff, ffado).
另外,mpd自0.19版本以后增加了addtagid
命令,可以在加载歌曲后修改tag,因此现在lord支持的所有电台都能够(在mpc或其它客户端)中正常显示歌曲信息。
刚刚试用了lord,很不错。
不过发现在jing模式下要是网速不够好在切歌后断了一下,好像就再也连不上了。我用的是mpc,这种情况下打
mpc playlist
没有任何output。mpd端口显示updating lord/radio.m4a
之后也就没有反应了。只能重新打一行lord <Command>
。不知道有没有什么比较好的办法。。?