• Stars
    star
    497
  • Rank 88,652 (Top 2 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created almost 10 years ago
  • Updated over 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The DoubanFM for iPhone,using AFN and MPMoviePlayer

DoubanFM


github:@XVXVXXX
csdn:@XVXVXXX
please open DoubanFM.xcworkspace


The DoubanFM for iPhone,using MPMoviePlayer

&AFNetworking@AFNetworking/AFNetworking

&doubanAPI@ampm/Douban-FM-sdk @HakurouKen/douban.fm-api

&CDSideBarController @christophedellac/CDSideBarController


Update

  • 2017.7.20: 重构代码,之前使用的登录接口现在已经不能使用了,后续有待调整
  • 2016.01.03: 对播放器页面不再使用storyBoard,而是使用masonry重写了一下\代码重构
  • 2015.10.03: 播放器页面的封面现在用了SDWebImage,加载速度感觉比原来快了很多
  • 2015.10.02: 实体类现在一部分没用手动自己解了,用了MJExtension
  • 2015.09.23: 把代码整个结构弄好了,再也不是之前的ProjectFinal了,iOS9的http问题,目前看douban那边获取的一些url还是http,只能在info.plist里面改http了
  • 2015.07.03: 代码重构,渣渣渣结构变为渣渣结构,把一些原来放在AppDelegate里面的属性放在各自的实体中了
  • 2015.05.13: 频道下拉刷新
  • 2015.05.12: 专辑图片旋转

侧栏界面

  1. 侧栏采用了CDSideBarController
  2. 结构实际上是tabbarController
    • 第一view是播放界面
    • 第二view是选择频道界面
    • 第三view是登陆界面
    • 第四X是取消sidebar的选取


播放界面

  1. 当前选定的channel 在点击第二view的tableviewcell时用改变appDelegate设定
  2. 当前播放歌曲所属专辑的cover 用的是AFN的[UIImageViewController setImageWithURL:(NSURL *)url];
  3. 歌曲进度条Progressbar 用了NStimer
  4. 歌曲的title,artist
  5. buttons,包括pause/play,like,ban,skip.都是通过AFN向douban发送request获取新的playlist


选择频道界面

  1. 目前按照doubanFM官方的写了类似的,在登陆之后,获得的频道和歌曲都会不一样,推荐频道会变多,红心歌曲也会同步到douban那边的数据
  2. 点击相应的频道可以获取相应的playlist,同时主页信息也会更新
  3. 红心频道在没有数据的情况下,会有alertView提示


用户信息界面

  1. 未登陆时只提供一个登陆的接口,下面的数据在没登陆的情况下,只会显示0,在登陆后则会根据用户信息更新
  2. 其中的登陆不是一个button,而是一个imageView添加了手势功能
  3. 用户点击上面的登陆之后,会presentViewController: LoginViewController


登录界面

  1. 登陆界面包括账号、密码和验证码
  2. 验证码也是来自douban方提供的,原理是先向douban申请一个captchaID,然后用这个返回的captchaID申请一个验证码图片。
  3. 点击登陆的时候,parameter包括账号、密码、验证码、验证码ID,如果登陆成果就会dismiss:self,然后回到之前的界面,更新信息;登陆失败则有相应的错误信息用alertview显示。登陆成功要记录用户登陆的一系列数据,之后设置有用。
  4. 点击取消则是直接dismiss:self,给了一个退出 LogginViewController的接口。


登陆成功界面

  1. 登陆成功就会更新信息,包括头像、昵称、自己在douban电台的播放信息,包括了played,liked,banned
  2. 头像其实还是刚才的登陆的图片,还是用AFN的setimagewithurl:,然后把图片的交互关闭就好了,_loginImage.userInteractionEnabled = NO;同时将下面原本hidden的but显示n登出,button.hidden =
  3. 点击登出就会进行登出操作,实际上也是向douban发送一个request,parameter中带了之前登录时返回的一个cookies。有问题的话,会登出失败的(囧)


Remote Control

  1. 从屏幕底部滑出处进行remotecontrol
  2. 在lock情况下进行remotecontrol