关于cc.audioEngine在安卓上播放的问题

引擎版本是2.4.x
23a548e3-8149-466f-8223-5d3d7d9b8ec7 1fb28da7-4abb-4e19-a7f8-2d91a7fa2662
在安卓真机上播放音频会出现上图大量log不断打印 用的是cc.audioEngine的相关方法
是什么原因?音频倒是正常播放的,就是大量log冲掉了有用的Log信息

建议你筛选一下log,把tag是Cocos的筛选出来,因为有的log是android系统本身打的,有可能你换一台android机器,就不打log了。以前我也碰到类似的问题,某台华为打的比较多,换一台机器可能就不打了,解决的办法就是筛选一下,把没用的过滤掉就可以了。

刚才尝试用官方新工程去跑了一下,排除了自己项目工程的内部导致,新工程搭建出来的android包播放音乐也会有这段log。
这里顺便把我的安卓搭建环境说一下 Gradle7.6.2 JDK17 androidStudio版本2023.2.1.24 NDK用的就是默认的
这里粘贴处新工程构建的安卓工程gradle.properties截图

奇怪的是搜遍全网竟然没有人会提这类问题 难道都是筛log吗 :rofl:
另外你说的筛log 是基于有log可筛 现在问题在于这段打印一直快速输出 导致冲刷了自己有用的log信息,根本筛不出来 因为log的打印上限有限 没办法记录运行时所有的log 如果有log一只冲刷打印 就会把很多Log冲走留不下来

你换个机器,或者用模拟器试试看,我记得一般每个机器刷log的情况是不一样的。

因为log的打印上限有限

这个上限我记得可以调的,一般我monitor那都是调10万条保留。

这个上限设置是在andoridstudio设置的吗?

另外


打包后部分音效读取失败 是音效问题还是?

这个上限设置是在andoridstudio设置的吗?

都可以,找到logcat,我一般用的sdk里的device monitor,android studio也可以。可以设置的很大也不影响。看图片

另外读取失败的建议你检查音频文件本身的问题,也建议转成mp3用。

我调成20480了 虽然就能过滤一部分 但是由于音频打印的频率过高 运行一两分钟后就会出现image


然后就再也打印不出任何东西了

1.cocos creator2.4.x
2.androidStudio版本2023.2.1.24
3.工具Gradle7.6.2 JDK17
问题:
在运行工程时(官方的工程) 播放了一段音乐(试过换音乐也是如此 跟音乐文件无关)
会有一段log不间断的大量输出
导致冲刷了很多有用的log信息 哪怕筛选也没法获取 因为log打印有上限 会记录一定数量的log
音频频繁打印效果如下 这个是官方工程hello world下简单的运行了一段代码
image

效果:
链接: https://pan.baidu.com/s/1xtkYQdgy6-CtdU0B50PP6g?pwd=6g2y 提取码: 6g2y

被你说中了 就是手机问题 但是是近4年的手机都这样。。

自问自答吧 经过半个月以来努力排查找原因 得出以下一些信息
结论:
这是特定的机型才会出现 并且在千元机里头居多 相同品牌不同型号(不知道相同型号会不会)也不一定能够重现
测试过程:
1.直接用官方工程简单播放一段音效 然后打包放入 (特定机型 别的机型不会 生产年份旧的不一定会有问题 新的也不一定没问题)最新3.8.3依然存在这类问题
2.用不同的音频(各大渠道:网易云 酷狗 千千静听…下载的常见格式mp3 wav ogg等等)去播放依然有问题 (特定机型)
3.以上测试都是相同的安卓环境配置(NDK JDK SDK gradle…配置相同)
问题:
有没有办法把这个log在机器运行时注释不打印 即便过滤也会产生频繁打印导致机器发热严重产生性能问题(1ms瞬间刷屏那种)

你找个不打印的机器用来开发就可以了。
这是系统打印出来的,就算有设置,用户也不一定去设置。而且看起来设置不了。就不管就行了。

主要是影响性能,在特定的这些真机上是实实在在打印,会让游戏有卡顿感,而且会导致很多正常机子出现不了的问题,目前想说打包的release版看能不能不打印,至少让这些特定机型没有打印的性能消耗,但是目前看了几个方案试了都不行,其中包括build.gradle里的release里所有参数都设置不打印也不行

你用其他游戏或者播放器播放音频,是不是也打印这些log?我记得这些log是你无论什么应用,播放音频都会打的。是系统内部开的log设置。
另外这个卡顿感,你试试看关掉usb调试,不连接电脑,实际安转app来真机跑的话,是不是还卡顿。

刚才立马试了一遍别的app,观察了一下后台,试了网易的狼人杀,抖音,王者都没有这类打印,仅有通过官方打出来的release包播放的声音会有这类问题,这让我不得不重新怀疑官方的音频控件是否有兼容问题

确定吗? 我看好多软件的log输出都有这些tag。你可以搜一下:
AudioTrack : Android framework’s audio playback API
voice_scence_discern 一般都是这个api设置参数的时候打的。
网上可以看到各种各样软件的log里面都有这些tag的。

如果有的游戏没发现,说不定他们不是用的这套API,而是用的类似OpenAL这种直接填buffer的库。

确定,
因为我还尝试过运行一些市面上用cocos开发的包运行在这些特定手机上也有这类频繁打印问题,同样会引起过量的打印引起快速发热
有小伙伴建议我用webview试试,这里也顺便说一下结论,就是同样会有这类打印
应该是用了特定的库以后在某些机型上确实有异常问题出现
随机抽取市面上的几款用cocos制作的上线游戏在这类机器都有问题
测试游戏包括但不限于以下游戏:
塔防召唤师、消灭星星 解压切水果 …