如何让android只在一只耳朵里发出哔哔声?
Posted
技术标签:
【中文标题】如何让android只在一只耳朵里发出哔哔声?【英文标题】:how to make android beep in only one ear? 【发布时间】:2012-06-04 19:07:34 【问题描述】:我还是 android 的新手,目前我正在做一个项目,我必须指导一个人使用音频信号。 我真正想做的是只在一只耳朵里发出哔哔声,告诉这个人要么左转,要么右转。直直时,两只耳朵都会发出哔哔声。
我在这里找到了一些关于如何在 android 上生成哔声的示例。
以下是如何生成任意哔声的示例: Playing an arbitrary tone with Android
我只想用一只耳朵播放它,然后在两只耳朵的播放之间切换。有人知道如何做到这一点吗?
【问题讨论】:
因此您必须使用 CHANNEL_OUT_STEREO 作为格式并编码三个数组,一个用于左耳,一个用于右耳,一个用于双耳 ***.com/questions/6458780/… 重复 为不同的耳朵编码究竟是什么意思?我试过在耳朵之间切换音量,但它不起作用。你能解释一下如何为不同的耳朵编码吗? 通过电子邮件将您当前的代码发送给我并进行不良测试,看看我能做什么。 【参考方案1】:您可以制作三个不同的立体声声音剪辑,其中您在左、右和两个声道中都有声音,然后使用 SoundPool 播放它们
【讨论】:
到目前为止,我还没有成功生成音调。我想我将不得不使用你的方法。你能告诉我你是否知道如何在电脑上生成这些声音片段吗? 我最后也使用了大胆。它是一个非常方便的创建声音的工具,使用 android 我在动态生成哔哔声方面没有任何成功。【参考方案2】:查看文档,您可以使用 AudioFormat 控制输出。不确定这是否能给您提供所需的精度。
final AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, numSamples,
AudioTrack.MODE_STATIC);
左声道输出改成这个:
final AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate, AudioFormat.CHANNEL_OUT_FRONT_LEFT,
AudioFormat.ENCODING_PCM_16BIT, numSamples,
AudioTrack.MODE_STATIC);
文档:http://developer.android.com/reference/android/media/AudioFormat.html
【讨论】:
使用 CHANNEL_OUT_FRONT_LEFT 和 CHANNEL_OUT_FRONT_RIGHT 我无法用一只耳朵播放音调。这没有明显的效果。所有的音调听起来都一样,它们来自两个耳机。我只希望一个耳机在我必须引导一个人朝任一方向的情况下工作。以上是关于如何让android只在一只耳朵里发出哔哔声?的主要内容,如果未能解决你的问题,请参考以下文章