在我的申请中,我发表以下声明:
toneGenerator.startTone(ToneGenerator.TONE_PROP_ACK, 600);这在运行Android2.3.3的廉价LG LS670上运行得很好,但在我拥有的所有其他手机上,从Android2.2.1到Android2.3.4,听起来都不太好。
因此,我知道操作系统版本在这里不起作用(我还在文档中验证了它自API 1以来就得到了支持)。
此外,Ringer卷和Media卷都被设置为最大,toneGenerator被初始化为:
toneGenerator = new ToneGenerator(ToneGenerator.TONE_DTMF_1, 100);我验证了Settings.System.DTMF_TONE_WHEN_DIALING被设置为1。
对于这种不一致的行为(在不同的手机上),我感到困惑的是,当这种情况发生时,我检查了系统日志,我唯一能发现的可疑差别是,fail to fail TONE_PROP_ACK的手机日志中有这一行:
AudioFlinger setParameters(): io 25, keyvalue routing=0, tid 155, calling tid 121AudioFlinger的目的是什么?它与静音TONE_PROP_ACK的连接是什么?
任何想法如何修复我的代码,使TONE_PROP_ACK总是听起来,而不管是什么手机模型?
发布于 2013-02-08 21:49:48
其中一项工作是生成类似Audacity之类的音调,并通过SoundPool或您选择的api播放它。
根据Android的文档,ToneGenerator.TONE_PROP_ACK是:
1200赫兹,100毫秒开启,100毫秒停止2次爆发
如果您选择SoundPool,我建议以ogg文件格式保存,并循环音调直到完成。这一方面提供了无缝音频与一个非常小的剪辑,并没有使用很多资源。
发布于 2014-10-02 04:00:48
解析/解码由媒体播放器服务使用的Stage fright来处理。解码后的数据通过音频水槽写入音频轨道,然后由音频Flinger的混频器线程混合并写入输出流(音频硬件)。输出流对象填充自己的缓冲区,然后将数据写入PCM输出设备文件(可能是也可能不是ALSA驱动程序)。
https://stackoverflow.com/questions/11218923
复制相似问题