仿Bilibili iOS客户端

作者: cezr | 来源:发表于2016-08-27 00:01 被阅读1879次

仿Bilibili iOS客户端 练习

项目地址: Github
空余时间慢慢完善中...

刚出来工作就单刷,没和老司机一起组队过,可能代码写的不太好。求指教求交流!

目前实现模块 【很多细节未完成
  • 功能组件
    • 网络层
    • URL跳转路由
    • 下拉刷新
    • 标签栏
  • 业务模块
    • 首页
    • 分区
    • 发现
      • 搜索
      • 排行榜
    • 我的
      • 下载
        • 下载队列
      • 历史记录
    • 启动页
    • 视频
      • 视频信息页面
      • 普通视频播放
      • 直播视频播放
      • 弹幕
    • 网页
截图
启动页.png 首页-直播.PNG 首页-推荐.png
首页-番剧.png 网页.PNG 网页-番剧.PNG
分区.png 发现.PNG 排行榜.PNG
搜索.png 我的.png 我的-下载列表.PNG
我的-下载列表-详情1.PNG 我的-下载列表-详情2.PNG 历史记录.png
视频信息1.PNG 视频信息3.PNG 视频信息-评论.png
视频信息-下载.PNG
普通视频播放.png 普通视频播放-弹幕.jpg 直播视频播放.png

相关文章

网友评论

  • PGOne爱吃饺子:大哥 pod之后还是有的地方报错啊
  • 84a013fc045a:在git上跑起来你的项目了,发现视频播放不了
  • 清心清语:博主想加你个qq方便不,想跟你讨论个问题
  • 卖女孩的小match:缺少 IJKMediaFramework 这个怎么办啊,怎么配置
    cezr:$ cd <ProjectDir>
    $ ./init.sh
  • 叹息之树:请问bilibili的后台播放模式怎么实现,很好奇啊,难道是提取的音轨启动音乐播放器?
    cezr:info.plist
    添加 Required background modes
    数组内再添加 App plays audio or streams audio/video using AirPlay
    使用ijkplayer播放视频的时候切到后台也不会暂停了。
    ijkplayer里面的代码我也不怎么熟悉...
  • 小码僧:进入视频播放页面后,左上角竟然没有返回按钮啊 :joy:
    小码僧:@cezr 嗯嗯,期待更新😆 做到这样已经很66666:+1:🏻
    cezr:因为懒2333 不过可以用手势返回的
    有空再加!
    没有返回按钮的应该是视频信息页面,视频播放肯定是有返回的。
  • davisjy:博主能不能加个QQ呢,想讨论个问题:grin:
    cezr:@davisjy 320966440
  • queuey:我不行了,我也饥渴难耐了。同准备仿一个哔哩哔哩。博主不介意吧。不过我估计也就半成品 :joy: 感觉坚持不下来。遇到问题还得请教你 :stuck_out_tongue:
    cezr:@queuey hhhh 嗯嗯,我也遇到不少问题,而且相同的场景也好交流~ 到时候记得发链接!
  • 89f689cf6b3f:[!] Unknown command: `XMLDictionary`
    Did you mean: try?

  • 89f689cf6b3f:diff: /../Podfile.lock: No such file or directory
    diff: /Manifest.lock: No such file or directory
    error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.
    pod要怎么设置才能跑起来?
    cezr:@王pp 报什么错?
    89f689cf6b3f:@cezr 试过了,下载不了
    cezr:@王pp 重新pod insetall 试试~
  • zhifenx:请问视频是怎么抓包的啊?一直没找到解决办法。
    cezr:@zhifenx 话说不知道为什么,加载不了PC的视频播放页面,它好像不是根据UserAgent判断设备的。。。否则就能更稳定的获取高清点的播放地址了。
    zhifenx:@cezr 嗯 谢谢 我试试
    cezr:@zhifenx 目前解析视频播放地址的代码在VideoURL.m文件。
    优先用www.bilibilijj.com的链接,有cid就可以了,如果无效的话。再通过UIWebView加载bilibili的视频播放网页,需要aid、page,JS控制触发播放视频,注册NSURLProtocol拦截视频播放链接。
    第一个方法是高清视频链接,但是有时候会失败。第二个方法相对靠谱很多,但是视频是渣画质233。
    直播的话,首页直播模块请求到的数据里面就有播放地址hhh。首页推荐模块的直播暂时不知道怎么获取地址。
  • queuey:提了个issues :smile:
    cezr:@queuey 在家看视频~ http://www.bilibili.com/html/activity-MAD2016.html
    queuey:@cezr 你这速度也够快的啊
    cezr:@queuey 嗯嗯,我看看~
  • 7068c651e24c:好厉害! :+1:
  • kinmo:ld: warning: directory not found for option '-L/Users/July/Library/Developer/Xcode/DerivedData/bilibili_fake-exuadmnndicqszguijfxxfpeexkz/Build/Products/Debug-iphoneos/AFNetworking'
    ld: warning: directory not found for option '-L/Users/July/Library/Developer/Xcode/DerivedData/bilibili_fake-exuadmnndicqszguijfxxfpeexkz/Build/Products/Debug-iphoneos/MBProgressHUD'
    ld: warning: directory not found for option '-L/Users/July/Library/Developer/Xcode/DerivedData/bilibili_fake-exuadmnndicqszguijfxxfpeexkz/Build/Products/Debug-iphoneos/MJExtension'
    ld: warning: directory not found for option '-L/Users/July/Library/Developer/Xcode/DerivedData/bilibili_fake-exuadmnndicqszguijfxxfpeexkz/Build/Products/Debug-iphoneos/Masonry'
    ld: warning: directory not found for option '-L/Users/July/Library/Developer/Xcode/DerivedData/bilibili_fake-exuadmnndicqszguijfxxfpeexkz/Build/Products/Debug-iphoneos/ReactiveCocoa'
    ld: warning: directory not found for option '-L/Users/July/Library/Developer/Xcode/DerivedData/bilibili_fake-exuadmnndicqszguijfxxfpeexkz/Build/Products/Debug-iphoneos/SDWebImage'
    ld: warning: directory not found for option '-L/Users/July/Library/Developer/Xcode/DerivedData/bilibili_fake-exuadmnndicqszguijfxxfpeexkz/Build/Products/Debug-iphoneos/SwipeBack'
    ld: warning: directory not found for option '-L/Users/July/Library/Developer/Xcode/DerivedData/bilibili_fake-exuadmnndicqszguijfxxfpeexkz/Build/Products/Debug-iphoneos/XMLDictionary'
    ld: library not found for -lAFNetworking
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    有老司机出来带带么
    queuey:@July丶ye pod install 一下
  • LittleArch:求问下你们说的仿就是自己看着那个app的界面然后自己写代码么?还是bilibil有公布一些官方的API?我只是个编程还没入门的新人所以不是很明白TAT
    LittleArch:@cezr 哦哦,这样呀,谢谢解答 :smile:
    cezr:@LittleArch 感觉做的过程很有趣223333,视频播放的地址就是折腾了好久才找到解决方法的~
    cezr:@LittleArch 这些接口是用Charles抓包找到的。有些接口必须要加签名,不知道签名方式就没办法了...
  • 褪色的棱角:个人中心的第一段那个圆角怎么设置的呀
    褪色的棱角:@cezr OK,三克油
    cezr:@褪色的流年 目前的大致做法是初始化UICollectionView的backgroundView属性,为它设置圆角相关属性。然后把Header/Footer/Cell加在backgroundView上。这样就有圆角的效果了,然后再在contentOffset发生改变的时候,计算更改backgroundView/Header/Footer/Cell的位置就好了。
    你可以看一下RefreshCollectionView.m文件 scrollViewDidScroll:、layoutSubviews、willDisplay...方法或者MineCollectionView.m的代码。
    【目前写的有点小问题,而且感觉稍微有点卡,正准备抽空改改。
  • 嚤仌啾啾:不错啊,下下来学习学习:+1:
  • Link913:不错,我也在仿,不过现在先学习rac,准备去b站试一试:smile:
    Link913:@cezr 哈哈,还在学习中,目前乘下班写写博客学学习
    cezr:@SkyHarute 我也投过简历,不过完全没回应QAQ
    cezr:@SkyHarute 我也用过RAC,不过总感觉姿势不对,有空看看你的代码,。快丢链接~
  • 叶舞清风:不错啊
  • xxttw:刚出来就是老司机得感觉
    cezr:@Unc1eWang 额,现在已经不是刚出来了2333

本文标题:仿Bilibili iOS客户端

本文链接:https://www.haomeiwen.com/subject/anuzsttx.html