怎么解决tiktok卡顿

原创 admin  2023-03-03 10:39  阅读 4 次

电脑抖音直播卡顿怎么解决?

咨询记录回复2022-04-25电脑直播卡顿如何解决? 1、把在电脑上打开抖音直播卡的问题直接反映给抖音客服,客服会根据实际情况教你如何调试。 2、电脑本身的问题:电脑的CPU性能不行。 直播的话,至少4核CPU的主频是3.4开始。 要求1K的分辨率需要更高的CPU性能。

怎样在切入切出虚拟摄像头时营造卡顿效果

背景介绍:本人原为android反向工程师,因工作变动退出了协议分析类岗位,目前正在进行直播机与第三方APP应用的兼容性分析,有此兼容性分析文章。

问题: tiktok在按下流媒体设备进行现场直播时,如果经过几个特定步骤在前后摄像机之间切换,就会出现卡涩的问题。

再现步骤:在实时界面中打开更多菜单→返回后台→返回前台→切换前后菜单。

现象:直播屏幕堵塞了,不能动了。

解决方案:找到点击切换按钮后点击事件的回调,找到切换摄像头的核心逻辑,找到卡住的原因。

1、如果知道ART虚拟机的同学会知道的话,jni函数和java函数两者都会调用ART虚拟机ArtM: Android.view.view.perform click

ArtM:; lr:0x4af78c; libart.so : Android.view.view.perform click

ArtM:; lr:0x2: Java.lang.:; lr:0x2: x.ggh.Liz

ArtM:; lr:0x2: Java.util.link:; lr:0x2: Java.util.hashmap.putall

ArtM:; lr:0x2: Java.util.hashmap.put

ArtM:; lr:0x2: x.d:; lr:0x2: x.d5k.onclick

使用frida hook libart.so的art method invoke函数找到了单击事件的回调类X.D5k。

找到与该类对应的onClick函数后,我感觉我简单研究了整个过程,发现核心代码在对直播流处理进行评论。

在核心代码之后寻找LiveCore,我想这就是live的核心代码。 其实现类为LiveCoreImpl,LiveStream的实现类为LiveStream。

这里只是编写了日志信息的合成和应用镜像等代码,但是找到了核心类LiveStreamVideoCapture。

跟踪到这里,发现链接已经断开,又在frida中打开tiktok卡,在启动页上死了,下次使用Xposed继续流程。

上面的代码赶不上切换摄像头的核心逻辑,但是找到了两个核心逻辑的LiveStreamVideoCapture类和LiveCoreImpl。 因为每个都与直播视频流控制直播核心流程控制相关,所以Xposed后续的时候重点放在这两个类上,这里开始了扩招。 粘贴名为hook的两个类的所有函数。请注意,此处使用的classloader是application的classloader。

日志太多了。 在这里用shell命令setprop进行了日志控制。

然后找到CameraVideoCaptur是er系的tryDeliverFrame。 这里处理照相机的视频帧。 感觉越来越接近了。 继续使用名为hook的方法。 然后,在发现自己卡在了摄像机切换中之后,这个方法也停止了调用。 那么,我没办法,只能继续寻找堆栈中run方法的调用方。

继续hook。

找到这个班。

现在,熟悉照相机开发的学生应该知道这是surface texture.setonframeavailablelistener。 摄影机的可用帧回调到此函数,在切换摄影机后,摄影机将变为铁路超高,可用帧也不会同时回调。

接下来是hook原生摄像头。

调用的是android.hardware.Camera,即与camera1相关的api,在切换卡顿时没有调用Camera.open函数。

第一次开始实时时调用了这两个函数,但在单击“切换摄影机”时没有调用。 在名为X.HCF的类中找到switchCamera函数时,估计第一次打开摄像机时和切换前后摄像机所做的流程不同。 此错误仅在切换相机时出现,因此不关注首次打开相机时的流程。

果然,切换照相机的时候遵循了这个流程。 这又发现了一个名为LiveStreamVideoCapture的核心类。 那么我们就简单进去看看有没有制作出SwitchCaptur测试,我们发现这个类只被创建一次,每次切换run方法时都会被调用,如果被卡住的话也会被调用。 那么,结合上述Camera.open被卡住时没有被调用的情况,可以大胆推测中间进程的某个条件没有得到满足就被返回了。 根据堆栈信息继续寻找几个关键点。

我发现CameraVideoCapture也有切换照相机的流程。 一步一步往下,就可以调用上面的我们在hook过的X.HCF的switchCamera了。 那么,我们来看看这里的switchCamera是否被调用了。

情况1 )滑动实时界面,按home键,然后返回tiktok并切换摄像头。 此时,status ) )函数返回1,前往后续的Camera.open流程。

情况2 )首先滑动界面,然后切换摄像头,按home键,然后返回tiktok,最后切换摄像头。 此时,status ) )函数返回2,不再跟随Camera.open的流程。

从日志来看,switchCamera的两种情况都在进行。 此外,如果结合switchCamera的源代码进行查看,则会确定源代码中status ( )函数的返回值决定了是否继续呼叫切换照相机的流程。 很遗憾,两种情况都发生了,我卡在那里了。 (为什么两个状态值不同呢? 在这里留个洞,最后补上。 这让我为难了!

那时,脑子突然打开,既然画面堵塞了,就一定会有错误信息的回叫。 果然,当我搜索到名为CameraVideoCaptur测试进程

错误信息清楚地表明照相机无法打开,因为照相机不支持变焦。 那么,到目前为止已经找到了摄像头堵塞的直接原因,但为什么卡在特殊的操作流程之后,无法进行通常的操作还没有找到。 于是跟着堆栈信息继续向上找。

进入这里的流程,我发现了照相机进入变焦的流程。 为了验证预期,我们决定在调用此函数之前,将消息的what字段更改为2,以避免此流程,并检查接口是否堵塞。 因此,出现了以下代码。

经过这个篡改,就算真的被随意耍了,直播界面也不会挂住了。 只要在那里找到发给handler的这个消息,我就真的应该很接近。

然后,查找截断此handler的sendMessage相关消息的what字段赋值为1的函数。

然后我找到了那个。 这个函数也和缩放有关。 它离不开十。

按前面的堆栈继续hook,堵塞的时候这些方法确实都去了,正常的时候不去,那么在X.Dvc的LIZ上继续使用堆栈扔。

得到以下两种堆栈:

x.DCM接收到touch事件,将其传递给名为X.DCc的类进行手势判断,发现这是需要执行缩放的手势,然后执行相机的缩放功能。 (由于我们的业务原因,我觉得必须隐藏下面的导航栏,在窗口下方显示导航栏,控件需要在向上拉动的同时进行相机缩放。 ) )

X.DCc类

X.DCO的invoke方法

单击tiktok的切换摄影机Button触发进入摄影机缩放时,此处将与我们以前的单击事件相关联。 红框的部分是对之前没有注意到的、最重要的照相机变焦功能判断部分的补充。

到目前为止,我们已经找到了相机卡住的直接原因和根本原因。 做了手势,然后点击照相机进入照相机的变焦功能判断流程中断了。 由于我们的虚拟摄像机不支持变焦,摄像机开机失败,卡在了摄像机的最后一个框架(可能是黑屏)上。 所以,交付给framework集团的开发者,让他们支持摄像机变焦的相关功能就可以了。

接下来填补前面剩下的洞。 为什么下降到背景时,status函数的返回值会不同呢?

回到CameraVideoCapturer类,看看这个status ( )函数是什么。

发现他在父类ExternalVideoCapturer的函数中返回字段。 那么,让我们看看在他那里进行了代入。

通过使用AndroidStudio提供的字段读写索引功能,可以使用父类的start、stop、release函数和自己的onErrorOnHandler函数(即抛出-421错误堆栈的函数) 熟悉摄像头开发的学生应该都知道,一般我们的界面下降到后台就会释放摄像头,然后回到前台重新打开。 现在,让我们将这些函数全部设置为hook,以验证预期。

在这里,hook了很多onCaptureStarted函数。 该函数调用父类的onStart函数,查看是否有调整了onCaptureStarted,但没有调整父类的onStart的情况。 然后,CameraVideoCapturer自己重写的onStart和父类ExternalVideoCapturer的onStart函数也做了hook。

以下是刚打开实时时的日志。 此时,状态= 1。

情况1 )滑动实时界面,按home键,然后返回tiktok并切换摄像头。 此时,status ) )函数返回1,前往后续的Camera.open流程。

如果通过实时下降到后台的调用确实释放了它,但是调用了父类的onStart函数,则应该是2的status将返回到1。

接下来回到前台。 此时,所有正常的status都还是1,重新执行自己的onStart函数相当于照相机的整个过程完全恢复。

下一次是第一次切换摄像头,此时的status还是1,摄像头正常,紧接着发现错误-421,又发现进行了父类的onStart函数,此时status还是1。

接下来,切换照相机的画面,卡住了,但是进行了父级的onStart。

在第一种情况下,每次切换摄影机时都抛出-421错误,然后调用父类ExternalVideoCapturer的start函数来重置status,这样就可以调用它了Camera.open,如果屏幕堵塞。

情况2 )首先滑动界面,然后切换摄像头,按home键,然后返回tiktok,最后切换摄像头。 此时,status ) )函数返回2,不再跟随Camera.open的流程。

不贴上之前的流程。 直接打开后面的进程记录。

后退到背景status=1

返回前台status=1

只有在切换摄像头后,屏幕才能正常显示状态= 1

第二次切换摄影机时,在调用switchCamera之前先抛出一次-421错误,使status=2。 然后,如果switchCamera函数确定status为2,则会返回,不调用Cam

tiktok为何卡顿,经常显示没有网络?

无法通过正规的测试网络连接,因为TikTok阻止了国内运营商的Sim卡。 取出Sim卡后可以连接使用。

最新的2.0.8版将获得手机的系统语言。 无法连接简体中文系统。 使用繁体或英语系统时,tiktok内容推荐仅推荐繁体和英语内容。 其实我不太推荐使用海外版本。 网络上用卡看视频不顺畅,也没有新鲜的内容,所以还是看国内的短视频比较好。

网友喜欢tiktok的理由:

1、居家隔离让人们开始关注短视频这种触手可及的娱乐。 受病毒大爆发的影响,被隔离在家里的人们现在有很多空闲的时间。 父母们想知道孩子们在网上做什么的时候,就想加入。 现在,一起玩TikTok、学舞蹈、拍视频教程的家庭越来越多。

2、TikTok作为内容平台,表现出越来越积极的一面。 在当今的社交媒体平台上,网络欺凌几乎无处不在。 作为一种新的社交媒体,TikTok一直鼓励人们创造积极向上的内容。

TikTok开始了许多正面能源人气标签的话题,包括保持家里健康、跨性别日、赞美医生等。 这些话题下有很多精彩的内容,给人们带来欢乐和希望。

tiktok直播时候网卡是怎么回事

TIKTOK直播卡怎么解决? 怎么解决账户限制?

1、舍弃号码重做

如果这个被限制的账户没有做很久,之后修改了视频的内容、音乐、剪辑,还没有起色,建议直接放弃号码,重新注册新账户。 根据以往的血泪教训,新账号受限后获救的时间和精力远远大于重量制作新号码的成本。

2、删除或隐藏foryou低视频

请仔细检查一下你做的账号。 那个从哪个视频里没有foryou流量呢? 删除从该视频中最后发送的foryou和foryou比例较低的所有视频。

3、提高视频质量

原创视频和高质量视频受到广大用户的欢迎,与其担心账户版权和流量问题,不如请专家对账户视频进行精炼。

4、更换IP

TikTok重选问题最初被检查的是节点,70%以上的问题是节点引起的。

如果发现是互联网问题,请尝试TikTok本地IP。 我们的企业SD-WAN专线可提供多个全球原生IP,除原生IP外,还提供全球网络优化服务、海外专线、互联网加速方案,包括海外游戏、跨国视频会议、跨境电商、跨境电商

华为手机看抖音很卡是怎么回事

华为看抖音非常卡的理由如下。

1、手机运行内存没有足够空间,运行内存需要足够的话,需要养成及时关闭后台APP应用程序的习惯

2、手机存储空间不足,程序运行时缓存文件没有多余空间

3、手机在外力损坏(碰撞、进水等)后出现卡顿,速度较慢,可携带手机到华为服务中心处理。

抖音( TikTok )是2016年9月上线的今日头条新闻推出的短视频分享APP,是一个专注于年轻人音乐短视频创作分享的社区平台。 抖音应用人工智能技术为用户创造了多种玩法,用户可以通过该软件选择歌曲,拍摄音乐短视频,形成自己的作品。 抖音是一个专注于15秒视频的短视频共享社区,用户可以选择歌曲并打开短视频制作自己的作品。 也可以自己上传剪辑作品。 这与小咖喱秀类似,但不同的是抖音用户并不轻易对口,而是通过视频拍摄快、视频编辑、特效(重复、闪烁、慢动作)等技术让视频更具创意

安卓手机上tiktok卡顿

tiktok卡的原因可能是手机运行内存太小或同时运行过多,导致卡顿。 我建议你重新启动手机,或者清理手机内存。

来源:https://www.huanp.com/douyin/130887.html
声明:欢迎分享本文,转载请保留出处!

发表评论


表情