cantata测试工具_我如何构建和维护开源音乐播放器Cantata

article/2025/9/28 23:40:45

cantata测试工具

这是与开发和维护开源音乐播放器的开发人员进行的一系列对话的第三部分。 Craig Drummond是Cantata的开发者和维护者, Cantata是一种开源音乐播放器,充当Music Player Daemon(MPD)音乐服务器的前端(客户端)。 我在家中有两台配置为音乐服务器的小型无头电脑,一台连接到客厅的立体声音响,一台在楼上办公室。 当我在寻找一种控制这些服务器的方法时,我第一次遇到了Cantata,哇,这是一项令人印象深刻的工作。

我有兴趣了解有关Cantata的更多信息,因此,当Craig同意进行本次采访时(为简短和清晰起见,已对其进行了少量编辑),我感到非常感谢。 事不宜迟,让我们与Craig聊天。

克里斯·赫尔曼森(Chris Hermansen): 查看Cantata的GitHub页面以及Cantata 的Debian发布历史 ,看来您从2014年之前就开始从事Cantata的工作。这对吗? 是什么让您决定开始进行此开源音乐播放器项目? 它是否与您的评论有关:“ Cantata最初是Qt MPD客户端(QtMPC)的分支?”

Cantata开源音乐播放器。

Craig Drummond:我从2011年就开始从事Cantata的工作。我曾经是KDE和Amarok的用户(喜欢Amarok 1.x,而不是2.x)。 实际上,我曾经是KDE核心开发团队的成员。 虽然我喜欢Amarok的UI,但我需要登录到KDE才能播放音乐,但我想让音乐继续播放并对其进行远程控制。 我环顾四周,发现MPD –无头音乐播放器。 作为KDE用户,我寻找了KDE / Qt GUI,发现的最好的是QtMPC。 这个项目已经被放弃了一段时间,并且有一些奇怪的UI怪癖,这让我很烦。 因此,我采用了QtMPC代码库,修复了它的一些UI怪癖,并将其移植为尽可能多地使用KDE库。 最初,我计划将补丁发送回QtMPC,但是我进行了太多更改。

CH:您在日常工作中也是软件开发人员吗? 您是否在Linux环境中工作?

CD:是的,软件也是我的日常工作。 它是Linux,Windows和Android开发的混合体。 大多数情况下使用Windows,而Linux在VM中运行。 我更喜欢使用Linux,但这不是我的决定。

CH:关于Cantata的一件真正令我着迷的事情是对细节的极端关注—例如,在设置页面上精心编写的有用的“微帮助”。 您对Cantata的真正了解是什么?

Cantata的“收藏夹设置”对话框。

CD:并不是我真正想过的。 多年来,Cantata通过添加我想要的功能(AudioCD,封面下载等)以及添加其他人要求的功能(ReplayGain,我从未使用过的Last.fm拼写,Jamendo,Magnatune等)而有机增长。 Cantata有很多选项,并且没有用户指南,因此我认为在配置页面上添加注释将有助于解释一些选项,限制等。我喜欢Cantata的一个方面是整体外观。 从单色图标(Font Awesome非常适合此功能)到按专辑,队列背景等对队列中的曲目进行分组。对我来说,UI看起来不错是很重要的(如上所述),这是进行分叉的原因之一QtMPC。

CH:如果我没看错的话,它看起来像是最新版本的MPD支持封面图共享(请参阅此处的示例 ,搜索“ albumart”)。 有计划将此功能添加到Cantata吗? 还是继续依靠具有“附近”封面服务器的MPD配置?

CD: Cantata已经支持从MPD中获取封面艺术-该功能已于去年11月通过另一个用户的补丁程序实现。

CH:我必须更新正在运行的版本。 你是音乐家吗? 您如何使用Cantata耳机,独立的DAC或家庭立体声? 您是专心聆听还是主要听背景音乐? 边听边工作吗?

CD:我当然不是音乐家! 我有一把吉他,几乎可以弹奏《 通往天堂的阶梯》 ,但这就是我能力的极限。 我的声音好坏参半。 目前,我正在键入Radio Paradise上的Rock混音-主要是作为背景音乐。 但是,当我拿到一张新专辑时,通常这将是我听几周的唯一声音。 我确实很喜欢听音乐,并且会尽可能多地播放音乐。

这些天我所有的聆听都是由Logitech Media Server处理的。 为此,我有两个airplay扬声器,一个老式的squeezebox收音机和一个蓝牙扬声器(我通过pi zero-w上的squeezelite使用它来桥接BT / LMS)。 我从不使用耳机,它总是通过扬声器播放。 我有一个TEAC参考500系统,已被Libratone Zipp(Airplay)取代。

CH:告诉我们一些有关Cantata使用的库的信息。 例如,您为什么决定使用Qt?

CD:嗯,作为前KDE用户,Qt是显而易见的选择。 毕竟,QtMPC是基于Qt的。 Cantata的前几个版本是基于KDE的,只有Qt的版本是可选的。 后来(我认为是2.0),我将代码仅移至Qt5,并放弃了对Qt4(以及因此的KDE)的支持。 即使我现在正在使用GNOME,我也喜欢Qt库。 Qt使跨平台开发相对容易-因此Cantata具有Windows,macOS甚至Haiku端口。 之所以使用所有其他库,主要是因为它们是其功能的默认库(例如,libmtp)。 我使用Taglib进行标签读取/写入,主要是因为它具有类似Qt的界面。 但是,它有时可能会导致崩溃,因此Cantata(如Clementine)启动了一个单独的过程来读写标签。

CH:您之前提到过,您正在从MPD作为服务器转移到Logitech媒体服务器。 您能告诉我们更多有关此决定的信息吗?

CD:我正在寻找一种可以在房子周围播放音乐的系统,而我的妻子会使用这种系统。 (Cantata Windows端口开始查看她是否会使用它,但是[她]从未使用过。)我四处寻找解决方案。 我的Android手机上安装了BubbleUPNP。 我尝试使用该选项,让MiniDNLA与Chromecast音频通话,但很快就被音轨之间的两到三秒的间隔所烦扰。 尝试之后,我尝试了Plex,它也可以播放Chromecast音频设备。 但是同样,音轨之间有0.5秒的间隔(对于现场专辑来说是可怕的),并且更新音乐数据库的速度很慢。

最后,我偶然发现了LMS。 此选项也支持Chromecast音频设备,但也支持Airplay,DLNA和无头squeezelite应用程序。 我早就放弃了Chromecast,但是对Airplay的支持非常棒。 使用LMS,我可以在整个房子里播放音乐,将音乐队列从一台设备移到另一台设备,等等。所有这些都通过与开源播放器(Airplay“桥”,​​squeezelite)对话的开源服务器(LMS)进行。等)

而且,最重要的是,我的妻子现在可以实际使用该系统了。 她在iPhone上使用iPeng来控制设备-在Android,iOS等设备上具有控制点,使事情变得更加用户友好。

从我的角度来看,我喜欢LMS如何将服务器与播放分开,而对于MPD,它们是一成不变的。 让一台服务器处理音乐库和多个播放设备的播放队列对我来说很有意义。

CH:关于LMS的有趣评论。 我记得当我真的想要Logitech Transporter时对它非常感兴趣。 显然,我需要再看一遍。 您对MPD和LMS社区的相对规模有什么了解? 两个社区的总体活动水平?

CD:并不是真的要诚实。 我在LMS社区比在MPD中更加活跃。 (MPD的作者从未喜欢过Cantata存储自己的音乐列表缓存的事实)。 LMS论坛(forums.slimdevices.com)似乎比MPD论坛( forum.musicpd.org )更活跃。 LMS用户和开发人员非常友好,Michael Herger(Logitech员工)很有帮助,通常可以快速响应查询。 但是如上所述,我从来没有真正与MPD进行过多的交互,因此我在那方面实际上不能提供太多信息。

如上所述,LMS更适合我的需求,但MPD可能是其他人的更好选择。

CH:您对Cantata有任何未来计划吗? 您要添加的内容? 您正在从事其他开源项目?

CD: Cantata没有未来的计划,它处于仅修正错误的状态。 今年晚些时候,我将发布v2.4.0,但这很可能是很长一段时间以来的最后一个功能。 如前所述,我不再积极使用它。

至于其他开源项目:我曾经写过KDE字体管理器和KDE的仅图标任务栏,我为各种开源项目(KMediaFactory,Audex,Kino,MPDroid)贡献了补丁。 几年前,我写了一个Qt5开放式控制点。 这个项目从未成熟,看到我也放弃了BubbleUPNP / MiniDNLA,我已经有一段时间没有使用它了。

我正在从事的主要项目是针对LMS的Google材质主题的“皮肤” 。 LMS的默认Web UI可以正常使用,但它并不漂亮,并且不能在移动设备上真正工作。 因此,在过去的一年中,我一直在为LMS编写HTML5 / Javascript接口。 但是,我不是Web开发人员,所以这对我来说是全新的。 这个项目的优点在于它已安装在LMS服务器上,因此无需安装任何软件(仅需要浏览器)就可以拥有一个不错的LMS UI。 如果要烧烤,我可以让来宾更改曲目等,只需让他们将手机(iOS,Android等)上的浏览器指向LMS。 如果您有兴趣,请在线搜索“ lms材质皮肤”。 我的GitHub页面上的唯一屏幕截图来自v0.0.1(并且UI发生了很大变化)。 我几周前刚刚发布了v1.0,但我仍在进行更改。 “尽早发布,经常发布。”

CH:很酷,我想看看。 我想这最终将取代您家庭中使用iPeng吗?

CD:很好,但是很难让我的妻子了解新事物。 她喜欢iPeng,它很适合她,对我来说很好–至少她终于使用了我们的数字音乐收藏。

CH:我非常喜欢与Craig的谈话。 尽管我对Canata / MPD在家中传送音乐感到非常满意,但听起来好像我需要看一下Logitech Media Server。

音乐选择

我最近买了几张新专辑。 一个突出的是一个可爱的CD(是的,既不是下载或乙烯基我我失去了我的联系吗?) - 声音:咏距离阿维尼翁 。 我是我所遇到的大多数格列高利圣歌的忠实拥护者,这是一个很好的例子。 在另一个极端,自从2000年代初购买的CD首次运行它们以来,我一直在寻找更多的Kwanzaa Posse,我发现了这一点: 具有大规模攻击性非洲振动的Kwanzaa Posse 。

最后,我问克雷格(Craig)一个建议。 他的回答是:“音乐是如此个人化,很难提出任何建议。我现在非常喜欢Avantasia ,而且我对Iron Maiden,Magnum和Thunder的粉丝超过了我多年话虽这么说,我也喜欢Aqua的Barbie Girl ( 我俩都有他们的专辑!)既不喜欢大多数流行音乐,也不喜欢说唱(但喜欢RunDMC的Walk this Way ),而且永远也不会加入Jazz。 ”

翻译自: https://opensource.com/article/19/10/cantata-open-source-music-player

cantata测试工具


http://chatgpt.dhexx.cn/article/P0fZyZ2G.shtml

相关文章

sd卡烧写linux内核,linux下怎样烧写sd卡

广告 提供包含云服务器,云在内的50+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。 就像用硬盘装windows平台一样,将sd启动卡插入板子的sd卡插槽,然后将启动顺序拨码开关拨到sd卡启动处,开机启动即可手动把sd卡中加装好的平台烧写到板子上...如下…

linux下实现dlna识别当前音频格式,如何将实时音频流设置为DLNA兼容设备?

问题描述 有没有办法将声卡的实时输出从我们的12.04.1 LTS amd64桌面流式传输到我们网络中的DLNA-compliant外部设备?使用Rygel,miniDLNA和uShare选择共享目录中的媒体内容总是很好 – 但到目前为止,我们完全无法通过DLNA向客户端获取实时音频…

IOS版aplayer使用教程_享声数播APP使用指南【ios版】

享声数播的内容播放是支持APP操作的,现在我们简单介绍一下相关的操作指南。 关于享声APP,官方推荐安卓手机用户使用bubbleupnp ,苹果ios用户使用8player 举例设备:享声A1 软件:8player 操作顺序 【数播端操作】 ①享声数播用网线连接到路由器 ②在享声主屏幕上切换到【通用…

打开方式中选择默认方式无反映_「全民标签」论享声A1的APP打开方式以及与树莓派的使用对比...

​ 大家好,我是流氓才子。 说在前面:今天的推送,末尾没有福利,因为个人觉得文章的主角就是最大的福利。。。先别急着说这句广告很硬,往下翻翻试试? 近一个月来论坛最火的机器是啥?没猜错的话应该…

Android上好用的DLNA播放器BubbleUPnP

BubbleUPnP的厉害之处在于:实现在手机上听电脑上的歌,或者控制电脑上的播放器当遥控器用。用foobar2000只需要添加一个叫foo_upnp的插件即可,XMBC或者别的支持UPNP的播放器也可以。 BubbleUPnP播放器能够轻松播放手机中的音视频及网络上的UPn…

BubbleUPnP多屏互动

一,相关简介 1、 DLAN简介(百度百科) DLNA的全称是DIGITAL LIVING NETWORK ALLIANCE,其宗旨是Enjoy your music, photos and videos, anywhere anytime, DLNA(Digital Living Network Alliance)由索尼、英特尔、微软等…

WebDAV之葫芦儿·派盘+BubbleUPnP

BubbleUPnP 支持WebDAV方式连接葫芦儿派盘。 推荐一款投屏神器,它将手机内容分享到电视大屏上与家人好友一起共享,软件还提供了丰富的音乐及影视资源,喜欢的内容在线搜索就能播放。支持连接葫芦儿派盘WebDAV服务站,可以直接播放派盘内的影视资源。 BubbleUPnP是一款支持U…

数据结构和算法——Huffman树和Huffman编码

Huffman树是一种特殊结构的二叉树,由Huffman树设计的二进制前缀编码,也称为Huffman编码在通信领域有着广泛的应用。在word2vec模型中,在构建层次Softmax的过程中,也使用到了Huffman树的知识。 在通信中,需要将传输的文…

Huffman编码压缩文件

文章目录 前言一、Huffman编码是什么?二、Huffman编码的实现方法三、Huffman压缩文件1.统计文件个字符出现的次数2.生成Huffman树3.生成码表4.对文件进行压缩 四、Huffman解压文件五、实验结果总结 前言 这个实验是我在学习信息论与编码时所做的课程实验&#xff0…

自适应Huffman编码

自适应Huffman编码,可用初始编码表(数字音视频技术,实验二) 如果你已经理解了 自适应Huffman编码 ,那么你不应该浪费时间在无聊的实验上 实验目的 1、深入掌握自适应Huffman编码的原理 2、掌握自适应Huffman编码算法…

huffman python,哈夫曼(Huffman)编码python代码实现

首先看定义 哈夫曼编码(Huffman Coding),又称霍夫曼编码,是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称…

Huffman Tree

Huffman Tree 哈夫曼树;哈夫曼编码;最优二叉树 自底向上 变长编码;前缀编码;熵编码 数据无损压缩;最短编码;最佳判定树 一、基本概念 Huffman Tree,又称最优二叉树,是带权路径长度最…

Huffman Codes

题目 In 1953, David A. Huffman published his paper “A Method for the Construction of Minimum-Redundancy Codes”,and hence printed his name in the history of computer science. As a professor who gives the final exam problem on Huffman codes, I am encounte…

HuffmanTree

#include "stdafx.h" #include "stdio.h" #include "stdlib.h" #include "string.h"typedef int ELEMTYPE;//哈弗曼树节点结构体 typedef struct HuffmanTree {ELEMTYPE weight;ELEMTYPE id;//区分权值相同的节点struct HuffmanTree* …

JPEG中Huffman解码实例讲解

DHT Huffuman表格式 -------------------------------------------------------------------------- 名称 字节数 值 说明 -------------------------------------------------------------------------- 段标识 1 FF 段类型 1 C4 段…

哈夫曼树(huffman)

学完了huffman树,讲一下自己对它的理解 huffman树遵循二叉树的原则,每个节点最多有两个子节点,但是每个节点都带有一个权重,如果我们要将一组字符串 “ B D C A F E ” 插入huffman树,每个字符都会带有一个权重&#…

Huffman树和Huffman编码

文章目录 Huffman树的定义带权路径长度WPL Huffman树的构造Huffman树的特点 Huffman编码构造Huffman编码 Huffman树的定义 哈夫曼(Huffman)树,又称最优二叉树,是一类带权路径长度WPL最短的树。 带权路径长度WPL 要理解带权路径…

Huffman树(哈夫曼树)

哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的带权路径长度记为…

虚拟机下安装BackTrack5 (BT5)教程及BT5汉化

isare邀请您访问Backtrack中文网 http://www.backtrack.org.cn/?fromuid50397 isare邀请您访问Backtrack中文网 http://www.backtrack.org.cn/?fromuserisare PS:back track 安装过程中有2点要注意:第一:复制到99%的时候会等大约10来分钟&a…

bt 下载工具 deluge 配置 优化 使用

目录 Ubuntu 18 配置 deluge Deluge 安卓远程客户端 Deluge 性能调优 deluge是基于libtorrentpython的跨平台bt/pt客户端,适合在Linux环境下使用 deluge完全开源免费,对IPv6支持良好,性能优于transmission;在嵌入式设备上使用d…