仿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