音乐app的分析(例:QQ音乐)

<一>QQ⾳乐最核心的功能就是歌曲的播放

播放音频,首先想到可以用AVFoundation框架,来完成播放音乐的主要功能。但是AVFoundation只能播放本地的音乐,不能在线播放。虽然可以先从网络下载资源到本地再播放,但是必须要整首歌都下载完成后才能播放,这样效果并不好。

!

如果想在线播放,可以选择AudioToolbox框架中的音频队列服务Audio Queue Services。音频队列服务可以完成音频的录制和播放。 


一个⾳频服务队列Audio Queue有三部分组成:

三个缓冲器Buffers:每个缓冲器都是一个存储音频数据的临时仓库。

一个缓冲队列Buffer Queue:一个包含音频缓冲器的有序队列。

一个回调Callback:一个自定义的队列回调函数。


音频播放的流程:

将音频读取到缓冲器中,一旦一个缓冲器填充满之后就放到缓冲队
列中,然后继续填充其他缓冲器;当开始播放时,则从第一个缓冲
器中读取音频进行播放;一旦播放完之后就会触发回调函数,开始
播放下一个缓冲器中的音频,同时填充第一个缓冲器放;填充满之
后再次放回到缓冲队列。


流媒体

好的⾳乐播放器要保证播放的流畅性,一定是边加载边播
放,如果做得再好一些,可以用流媒体来做。

详细内容。。。

<二>获取歌单,显⽰在界⾯

这部分主要通过AFN来从网络获取歌曲信息,然后展示在界面上。对于界面展示这部分比较熟悉,做起来难度不大。继续补充


<三>歌曲下载到本地存储

歌曲离线下载管理这部分,也很重要。歌曲名称、作者等
相关信息可以存储到数据库中,歌曲的源文件以及歌词文
件,下载之后存到沙盒中指定的文件夹中。


<四>其他其他的设置等功能和其他软件大同小异。

可以比照QQ播放器,挑自己熟悉的地方详细的解释说明一下,是如何实现的。 


你可能感兴趣的:(IOS)