同样代码只有IOS 会掉帧,从满帧60帧,按住开启麦克风就会掉帧到30帧以下,关闭麦克也会掉帧。
把把红色框中代码注释掉,没有明显掉帧了。
掉帧 从很大概率,降低了小概率,也不是完全不掉帧。
项目接入了WWise;麦克风的开关语音使用的是GME 的接口。
使用insigh 抓取数据,发现GameThread 有一段就没有数据,分析是FAppEntry::Tick();
之前就卡主了,没有调到所以没数据。
用AI分析
20260806-224859.png
请大佬帮忙看下 是否有其他更好的处理方法。
[Attachment Removed]
Liu.Wei
(Liu.Wei)
2
Hi,
你好,请问掉帧是一帧的卡顿,还是指开启关闭麦克风后,帧率始终变成30帧了?
[Attachment Removed]
不是卡一帧,是卡一小段时间,从上图的insight 中可以看到没有任何GameThread 数据,直接黑块了。
后面还会正常到满帧
[Attachment Removed]
Liu.Wei
(Liu.Wei)
4
Hi,
抱歉回复的晚了,我看了一下代码,这里有几处设备信息的访问是在主线程做的,有可能造成你看到的卡顿,比如读取OtherAudioPlaying和OutputVolume。我尝试让AI做了一些改动,首先可以通过Notification来获得这两者的变化,另外也处理了在应用进入后台后收不到通知,等进入前台后重新在异步线程更新设备信息的功能。你可以先合入一下测试一下是否有效。
[Attachment Removed]