复杂的CD播放器

codplayer的Python项目详细描述


CODPLAYER-一个复杂的光盘播放器
===



r/>
因此,主用户界面是CD本身。插入一张光盘
,它将同时被翻录到文件服务器并播放。第二次插入同一张光盘时,它将直接从翻录的文件中播放。


这方面的一些用例包括:

*添加艺术家、标题和曲目信息
*删除烦人的简介和无聊的额外曲目
*无序播放编译相册的曲目
*链接多张光盘相册,以便按顺序播放所有光盘




安装r/>
安装和配置说明见
[`install.md`](https://github.com/petli/codplayer/blob/master/install.md)。




architecture
===


各种控制接口和数据库
管理界面。

Web控制界面和数据库
管理Web图形用户界面可以托管在文件服务器上。



数据库的格式在"codplayer.db.database"类的文档中有说明。
光盘数据库必须在播放机的文件系统中可访问。



e使用
光盘数据库,翻录和播放光盘。它通过zeromq
套接字或文件系统中的fifo进行控制。当前状态被发送到ZeroMQ订阅服务器,但也可以从本地文件中读取。




player interfaces
----

接口。例如:

*`codctl`:命令行界面
*[web界面](https://github.com/petli/codplayer control node)
*`codlircd`:红外遥控输入事件
*`codlcd`:液晶显示器上的显示状态和状态指示灯
*控制应用程序(尚未实现)


-----

控制和状态更新接口都基于zeromq
套接字。这用于允许在
不同组件(即使它们有时可能在
同一进程中运行)之间明确划分职责。


有关配置和消息格式的详细信息,请参见
`doc/zeromq.md`.




--——

codrestd提供的rest api提供了一个用于管理数据库中光盘的web gui。当前功能:

*浏览光盘,显示曲目列表
*编辑光盘和曲目详细信息
*从musicbrainz中获取光盘和曲目详细信息
*在codplayer deamon(可能在另一台计算机上)中播放光盘

还可以使用"codadmin"进行低级管理,使用使用
`--help`查看可用的命令。



ripping process
==


如果你觉得更暴躁,那就是数码服装中的模拟格式。/>
在linux上读取音频样本并不是那么困难,因为cdparanoia
很好地将掌握过程的意图保存到pcm文件中。一个更大的问题是读取光盘上隐藏的所有附加信息:pregap lengts、track、cdtext等。这些"子频道"数据是用一种数字载波编码的,必须逐位提取:http://en.wikipedia.org/wiki/compact-disc-subcode/>
cdrdao可以将其读入`.toc'文本文件。但如果同时让cdrdao读取音频样本,则通过重读部分进行的纠错操作会使子频道的比特数增加,从而导致toc数据失真。

o和toc使用cdrdao时,写入`.toc'的磁道偏移量
基本上是正确的,但是假装第一个磁道之前的所有
都是静默的。如果只使用cdrdao读取toc,则".toc"中的文件偏移量会忽略隐藏的磁道,因此与cdparania撕裂的磁道不匹配。


要处理所有这些问题,当告诉codplayer
光盘已插入读卡器时,codplayer将使用以下过程:

1。使用libdiscid读取基本toc(仅跟踪偏移量和
长度,无预映射等)。
2。在数据库中查找光盘信息,如果这是第一次播放光盘,则从目录中创建一个基本的
记录
3。检查光盘音频是否已被翻录。如果没有,开始一个妄想的过程。开始播放,希望CDParanoia的播放速度快于
播放速度(如果不是,则播放器将暂停等待更多数据)
5。检查是否已读取完整的TOC。如果不是,请运行cdrdao以获取
`.toc`文件。完成后,读取文件并将其与
现有光盘信息合并,以保持每个源的最佳数据。
6.停止旋转制动盘。
7.Disco.



许可证
=



2013-2015年版权所有peter liljenberg<;peter.liljenberg@gmail.com>;


Codplayer根据麻省理工学院许可证获得许可,请参见文件





麻省理工学院许可证:
Copyright(C)2005, 2013 JQuery基金会,BR/> BR/> MasaC.JS在麻省理工学院许可证下被授权:
* Copyright(C)2009 Chris Wanstrath(Ruby)< BR> > Copyright(C)2010 Jan Lehnardt(JavaScript)
BR/> BooTrasP.JS是MIT许可证下的许可证:
*CopriggHT2011-2015 Twitter公司

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java实现双锁并发队列   java如何更改SpringWS 2.4.4版或更高版本中maxOccurs的默认限制?   java Selenium RC如何处理动态行?   java何时引入Javac StringBuilder/StringBuffer优化?   java mediaplayer在R.raw Android上失败   java JPA2:不区分大小写,就像在任何地方匹配一样   如何从JDK15中提取java预览类文件?   java与mySQL删除查询不一致   从Shutdownow()返回的java列表<Runnable>无法转换为提交的Runnable   java如何从回调接口获取对象值?   java如何获得视图的高度,在xml中可见性和高度定义为wrap_内容?   postgresql Mybatis在启动时遇到“由以下原因引起:java.net.UnknownHostException:localhost”,为什么?   带有实例调用的方法调用的java intellij格式化程序换行   由于特定的第三方库,java Proguard产生运行时错误   动画JAVA JPanel同时滑出和滑入