JSON

(IOS)Swift2.0 Radio 程序分析(2)

字号+ 作者:H5之家 来源:H5之家 2015-10-14 11:03 我要评论( )

在StationsViewController类中,实现了对所得到的电台数据进行分析和拆解并通过UITableView将其显示出来。loadStationsFromJSON()通过调用DataManager.getStationDataWithSuccess(success: ((metaData: NSData!) -

    在StationsViewController类中,实现了对所得到的电台数据进行分析和拆解并通过UITableView将其显示出来。loadStationsFromJSON()通过调用DataManager.getStationDataWithSuccess(success: ((metaData: NSData!) -> Void))获取电台数据并将其0保存在stations:[RadioStation]中。再通过TableView方法来将所得数据呈现在UITableView上。通过重写prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)方法来完成将选中的电台传递给NowPlayingViewController。同时通过完成NowPlayingViewControllerDelegate的两个方法artworkDidUpdate(track: Track)和songMetaDataDidUpdate(track: Track)来获取和显示当前播放歌曲的信息。

  7) NowPlayingViewController.swift

    

    创建一个radioPlayer = MPMoviePlayerController()并对其进行设置。当调用stationDidChange()方法时,radioPlayer播放当前电台的媒体流。

    

    

    metadataUpdated(n: NSNotification)方法用于获取radioPlayer正在播放音乐的metadata,通过进行简单的处理获得正在播放音乐的title和artist信息。如果发现currentSongName与获取title不符,说明开始播放一首新的歌曲了,调用resetAlbumArtwork()和queryAlbumArt()来获取新的歌曲信息,并用updateLockScreen()来更新锁屏界面,用songMetaDataDidUpdate(self.track)将新的歌曲信息传给StationsViewController。

    

    通过使用API获取歌曲完整信息。 

    

    resetAlbumArtwork()中通过调用updateAlbumArtwork()来实现专辑封面的更新,如果获取专辑封面失败,则使用电台封面代替。

    

    通过使用NSURLSessionDownloadTask来下载专辑图片,将下载完的图片存至track.artworkImage并更新封面图片,锁屏界面及将新数据回传给StationsViewController。

    

    用于更新界面上的buttons和labels。

 

三、项目实现的一些特征分析

 

  1) 动态正在播放图标

    

    

    

    

      

    调用AnimationFrames class 中createFrames()方法为nowPlayingImageView.animationImages创建对象。在通过startAnimating()方法来实现动画效果。

  2) 在app中打开safari

        

    通过UIApplication.shareApplication().openURL(url)来实现。

  3) 后台播放、锁屏播放及锁屏显示歌曲信息

    

  

    系统开始接受远端事件。

    

    允许后台播

    

    锁屏歌曲信息设置及接受锁屏时对歌曲播放或暂停的控制。

 

四、发现的一些BUG

 

在XCode 7.0.1 iPhone 6s plus 模拟器运行下发现的BUG:

  1) 内置email功能无法使用,每次点击email跳转到mail app后立即崩溃。

  2) NowPlayingViewController 界面上的Volume Bar 无法调节音量。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Objective-C与JavaScript交互的那些事

    Objective-C与JavaScript交互的那些事

    2016-01-30 13:00

  • C中emoji与json的问题

    C中emoji与json的问题

    2015-10-03 14:14

网友点评
p