Code Monkey home page Code Monkey logo

douyin-ios-objectc's Introduction

iOS仿抖音app

抖音demo适配了iphone、ipad,同时兼容iOS8.0至iOS12.0系统。当前抖音demo使用Object-C语言编写,Swift版本请点击这里

结构

本项目共分为三个部分。第一部分为抖音个人主页实现,包含NSOperationQueue多队列解析webp动图、网络资源二级缓存框架搭建。第二部分围绕AVPlayerLayer展开,涉及网络视频边播放边下载、UITableView控制多个视频源播放。第三部分则为WebSocket实现IM即时聊天,其中穿插文本计算、表情编辑等功能。三个部分都涉及网络请求、json数据模型转换以及手势、动画效果处理。

展示图

image image image image

抖音demo使用说明文档地址请点击这里,文档结构如下所示:

目录

iOS仿抖音app介绍

抖音个人主页

抖音短视频列表

IM即时聊天

作者

Qiao Shi

douyin-ios-objectc's People

Contributors

jianghui1 avatar sshiqiao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

douyin-ios-objectc's Issues

demo很赞,但是确实有闪退的问题,具体原因如下。。。

Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x60c00005a9a0> was mutated while being enumerated.'

个人首页上下多次且快速的滚动就会出现(也不是很暴力的那种快速上下滑,都是些很普通的用户滚动操作) ios11,8p

画面闪烁问题

ios 真机

正在播放的视频 不点暂停 回到后台 等声音停止之后

再次回来 播放之前会先闪烁一下 怎么解决? 谢谢

demo首页上下切换视频会报错?

首先赞许下app,其次问题如题,报错信息如下:
objc[5943]: Class VCWeakObjectHolder is implemented in both /Applications/Xcode9.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AVConference.framework/Frameworks/ViceroyTrace.framework/ViceroyTrace (0x1267234d0) and /Applications/Xcode9.4.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/AVConference.framework/AVConference (0x12584fe38). One of the two will be used. Which one is undefined.

大神帮忙看下 消失的动画失效是什么原因

这个是报的错
[Snapshotting] Snapshotting a view (0x7fefa7821980, AwemeCollectionCell) that is not in a visible window requires afterScreenUpdates:YES.

我看了下消失的动画里面的selectCell 不是空的。。

这个动画不太友好。。 层级关系一变,就各种找不到了。。 有没有好的办法解决这个问题,谢谢了!

视频加载失败问题

你好,大神。我在改动网络数据来源从本地json,并且在favorites.json数据下把列表数据重复增加到150多个情况下,多次在UserHomePageController的顶部和底部之间滑动,并且随机点一个collectioncell 进入AwemeListController后,再返回到UserHomePageController,就会出现AVPlayerItemStatusFailed,加载失败了,没法播放。请问这个问题要如何解决?感谢!

IM服务器

请问IM服务器是怎么搭建的呢?能不能给提供下思路呢?

添加了上拉加载功能后刷新table,视频会定住

大神你好,这是个非常赞的一个仿抖音项目,我也集成在自己的项目里了,但是我在视频上下滑动里面添加了一个上拉加载更多视频的功能(用的也是源码中LoadMoreController实现的),加载完数据,刷新tableview,出现了一个问题

简单来说就是,添加了上拉加载用接口请求更多视频后刷新table,当前视频会定住.

具体步骤是:
1.上拉后,会把下一个cell滑动到当前屏幕位置,然后正在播放cell中视频,与此同时loadMore(LoadMoreController 实例对象)也会加载下一页数据

2.当loadMore数据接口返回后,会更新到数据源data中.之后刷新tableview

3.当调用【tableview reloaddata】后,当前正在播放的cell画面会停住,当前屏幕会定住,但背景音乐还是在播放,点击屏幕后,视频又会从最开始播放(不是接着之前的播放进度,应该是点击播放后[AVPlayerManager]暂停了在后台运行的player,然后播放了当前cell的player,感觉这里体验很不好)

很严重的一个bug,不知道怎么解决,不知道可有其他解决方案?

PS:发现一个类似的案例:https://www.jianshu.com/p/7b47e63bf593

运行直接崩溃

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'App called -statusBar or -statusBarWindow on UIApplication: this code must be changed as there's no longer a status bar or status bar window. Use the statusBarManager object on the window scene instead.'

请教一个问题

您好大神,我看抖音的视频滚动的时候,在下一个cell(不知道是不是cell)还未出现的时候,基本数据已经加载完毕了, 目前demo情况是 如果网络情况不稳定的时候,在滚动下一个cell 会出现视频头图没有加载出来,要等待此时的数据赋值给cell进行数据的加载, 想请教一下,不知道用tableview,能否实现抖音的这种效果.
谢谢~~

内存是不是泄漏啊?超级影响使用的老兄!

大哥,能不能抽个时间时间把这个问题该下?滑动不了多少内存酒爆炸了,很影响使用,这样的话就有些华而不实了!现在做视频的很多,当时主要看这个播放器是自己做的,用了之后,测试才发现内存的问题很厉害!加班都没弄好!也不敢推荐朋友使用了,只是让他们看看。。。

报一个视频加载不出来的Bug

昨天发现用户资料页面,加载视频的时候很久都加载不出来

包括作品内容和喜欢的内容

刚调试发现等很长时间可以加载出来

报的是加载超时的Bug

load failed with error Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102

和注册访客用户失败的报错

SErrorFailingURLStringKey=http://116.62.9.17:8080/douyin/aweme/post?page=0&size=21&uid=97795069353, NSErrorFailingURLKey=http://116.62.9.17:8080/douyin/aweme/post?page=0&size=21&uid=97795069353, _kCFStreamErrorDomainKey=4} [-1001]
注册访客用户失败

有关格式工厂转格过的mp4视频播放问题

大神你好,我对demo里面视频相关的播放有一些疑问。
我测试用的视频是格式工厂转格过的mp4视频,上传到阿里云之后,发现滑动时会出现某些视频不播放的问题,onPlayerReady实际上已经回调了,play方法走了但是没有播放,而当我滑动下去三个再滑上来的时候,视频才会真正显示播放。

打不开的项目的朋友看看这里~

新版的Xcode应该可以打开,我的版本是9.2,右击项目Douyin.xcodeproj-显示包内容-project.pbxproj,将文件里的objectVersion改为48(对应的版本号)

一个小问题

你好大神,在视频详情页 跑马灯滚动动画里 如果文字带有emoji 高度会有偏差, 滚动的动画和前面的音乐符号就不对齐了
谢谢.

我们做了一个 golang 的后端服务

接口参考 zyinfo.pro 的网页版接口,有需求的欢迎联系我 微信 youkpan
golang 后端
包括:
视频数据内存索引,协同过滤,音乐ID 搜索, tag搜索,视频收藏关注(内存版 支持并发)
视频上传接口 七牛 ,视频模块内存管理,评论管理,后端数据管理及监控。视频举报及分享统计

作者你好

就是在滑动视频上下切换中,发现两个视频上下切换,视频并未从头播放而是处于暂停-播放-暂停-播放状态。请问这个问题应该如何解决?

UIWindow遮挡响应问题

//update method

  • (void)show {
    UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
    [window addSubview:self];
    }

这边直接加在了Window上 为什么下面的tableView还可以滑动,怎么做到的?uiview-delegate-hit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.