一个在线音乐软件的故事(五、让我们开始写代码吧)

让我们开始写代码吧

现在有了明确的功能需求,几乎克服了所有的技术障碍,那么就可以开始动手编写这个音乐播放软件了。

一、组织项目结构

这个故事所讲的在线音乐播放软件并没有很复杂的功能需求,界面数量很少,没有数据库操作。这样的项目几乎可以任意组织代码文件,甚至可以没有任何结构,把所有的代码都保存在同一个目录中,但我们依然希望能有一套便于组织和维护的项目结构。

我们把项目划分为:项目配置、协议分析、音乐播放、其他独立代码、用户界面与控制这几个代码包,他们各自负责各自的功能,相对独立。因为项目比较简单,就没有将 

在获取音乐信息的过程中要注意,搜索结果所返回的 

在搜索函数中还需要完成一项重要任务,就是通知别的线程搜索已经完成,但是否存在错误需要其他线程自己检查。这个通知任务也就是线程间通讯的主要目的,因为搜索是在一个独立的线程中执行的,当搜索完成之后,主线程或其他启动线程并不知道,我们需要发出一个信号通知其他正在运行的线程,搜索任务已经完成,可以继续执行后续动作。

在搜索函数的最后一行可以看到,通过调用实际范例可以在这个类的下载函数中找到。这样其他线程可以通过槽连接到这个信号,来捕捉这个信号,一旦捕捉到这个信号,槽中的函数就被调用执行,也就意味着后续动作开始了。在 

注意 

def run(self, *args, **kwargs):
    if self.source_type == AUDIO_FROM_INTERNET:
        self.cache_from_url()
    elif self.source_type == AUDIO_FROM_LOCAL:
        # 从本地缓存读取音频文件时要求 song_info 必须具有 file_path 键值
        
self.cache_from_local()

 

从本地文件加载音频数据的操作比较简单,直接通过来源:司码君

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年7月23日
下一篇 2017年7月23日

相关推荐