一个在线音乐软件的故事(二、其实故事从这里才开始)

其实故事从这里才开始

如果你看到了这里,那你应该看出来,我是在讲软件开发的故事,如果你和我一样喜欢Linux,喜欢用Python那我希望你也喜欢这个故事。这个故事并不是讲如何使用Python的,所以关于如何使用Python推荐你看《Python cookbook 第三版》

在故事的由来中已经提到,我是在Fedora上工作的,这个软件首先必须能在Fedora上运行,其他的Linux发行版留到以后测试。在Fedora25上,系统默认安装Python2.7,最新发布的Fedora26默认安装Python3,因此优先考虑使用Python作为开发语言。因为现在我使用的还是Fedora25,所以Python2.7成为首选开发语言。

定好开发语言之后,就是选择开发库,这个软件需要用到的组件库主要包括:界面组件库、音频文件解析组件库、音频解码播放组件库等。

先来说说界面组件库,PythonUI组件库有很多种,比如:TkinterwxPythonPyQtPySidePyGtk等等。我选择了比较熟悉的PySide,因为他其实就是PyQt的免费授权版,他的开发库APIPyQt几乎一样,界面组件的样式也几乎是一样的,虽然我不是做商业应用,但谁知道呢?还是免费开源的比较符合Linux 精神!其实最重要的原因还是我比较熟悉! PySide可以通过 dnf命令从软件源安装,而且官方提供很详细的开发文档,还有有不少范例可以参考。

音频文件处理和播放这是有点难以选择的,现在很多文章都推荐使用PyGame作为音频处理的组件库,但其实PyGame这个组件库最初不是用来做音频处理的,从字面上就能看出这是一款游戏组件库,而且这个组件库已经很久没有更新,社区的热度也不高,果断放弃。中间还实验了其他几款音频文件解析和播放组件库,都逐一放弃。经过实验比较,最终选择了Pydub,这是由住在美国纽约的James Robert开发维护的一款简单高效的多媒体音频数据处理接口,遵循MIT许可协议。这套组件库的社区比较活跃,讨论的内容也很多,开发的复杂度就像作者说的简单高效,最重要的是作者一直在维护这个组件库!Pydub的安装方式很多也很灵活,最简单的方式莫过于从GitHub上直接下载一份源码,把它解压缩后拷贝到你的项目中。

在音频播放方面,选择的是PyAudioPyAudio是基于PortAudio的跨平台音频IO组件库。这个组件库可以通过 dnf 命令安装,同时会安装PortAudio这个依赖项。在官网上有一些范例和文档,这个库的API不多,使用很方便。

好了,到这里基本确定了所有的开发库接下来就是解决所有的技术问题。

猜你喜欢

转载自blog.csdn.net/gunnery/article/details/77607047
今日推荐