以热门音乐为例,分析Jamendo播放音乐的流程。当Most Listened 被点击时会触发Top100Task被执行。在Top00Task的DoInBackground中通过JamendoGet2ApiImpl的接口getTop100Listened()获得热门榜的ID,进而通过这个ID获取对应的专辑信息和曲目信息。
点击一个专辑后的处理流程如下:通过PlayerActivity的launch(Activity c, Album album)函数启动一个下载任务PlayerAlbumLoadingDialog 获得专辑的曲目信息。然后调用PlayerActivity的launch(Context c, Playlist playlist)开始播放专辑的音乐。播放前先通过DownloadManager的接口检查对应的曲目是否已经下载到本地,否则播放远端服务器的曲目。播放的控制是通过PlayerEngine的实现类PlayerEnginer来实现的。
下载一首歌曲的流程:点击下载时会触发PlayerActivity的downloadOnClick()函数进而调用DownloadManager的download()函数,然后通过一个名字为DownloadService的服务执行真正的下载任务。