gpt4 book ai didi

android - 什么是 AudioFlinger,为什么它会失败 TONE_PROP_ACK?

转载 作者:IT王子 更新时间:2023-10-28 23:33:02 27 4
gpt4 key购买 nike

在我的申请中,我发出以下声明:

toneGenerator.startTone(ToneGenerator.TONE_PROP_ACK, 600);

在运行 Android 2.3.3 的廉价 LG LS670 上运行良好,但在我拥有的所有其他手机(从 Android 2.2.1 到 Android 2.3.4)上完全没有声音。

所以我知道操作系统版本在这里不起作用(我还在文档中验证了它自 API 1 起就受支持)。

此外,铃声音量和媒体音量都设置为最大,并且toneGenerator 初始化为:

toneGenerator = new ToneGenerator(ToneGenerator.TONE_DTMF_1, 100);

我验证了 Settings.System.DTMF_TONE_WHEN_DIALING 设置为 1。

对这种不一致的行为(跨不同手机)感到困惑,我检查了发生这种情况时的系统日志,我发现的唯一可疑差异是未能发出 TONE_PROP_ACK 声音的手机他们日志中的这一行:

AudioFlinger    setParameters(): io 25, keyvalue routing=0, tid 155, calling tid 121

AudioFlinger 的用途是什么?它与静音 TONE_PROP_ACK 有什么联系?

任何 idea 如何修复我的代码以使 TONE_PROP_ACK 始终响起,无论手机型号如何?

最佳答案

一种解决方法是在 Audacity 之类的东西中生成音调,然后通过 SoundPool 或您选择的 api 播放。

根据 Android 文档 ToneGenerator.TONE_PROP_ACK 是:

1200Hz,100ms 开启,100ms 关闭 2 个脉冲

如果您选择 SoundPool,我建议以 ogg 文件格式保存并循环播放声音直到完成。这同时以非常小的剪辑提供无缝音频,并且不使用大量资源。

关于android - 什么是 AudioFlinger,为什么它会失败 TONE_PROP_ACK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com