【问题标题】:how to make android beep in only one ear?如何让android只在一只耳朵里发出哔哔声?
【发布时间】:2012-06-04 19:07:34
【问题描述】:

我还是 android 的新手,目前我正在做一个项目,我必须指导一个人使用音频信号。 我真正想做的是只在一只耳朵里发出哔哔声,告诉这个人要么左转,要么右转。直直时,两只耳朵都会发出哔哔声。

我在这里找到了一些关于如何在 android 上生成哔声的示例。

以下是如何生成任意哔声的示例: Playing an arbitrary tone with Android

我只想用一只耳朵播放它,然后在两只耳朵的播放之间切换。有人知道如何做到这一点吗?

【问题讨论】:

  • 因此您必须使用 CHANNEL_OUT_STEREO 作为格式并编码三个数组,一个用于左耳,一个用于右耳,一个用于双耳
  • 为不同的耳朵编码究竟是什么意思?我试过在耳朵之间切换音量,但它不起作用。你能解释一下如何为不同的耳朵编码吗?
  • 通过电子邮件将您当前的代码发送给我并进行不良测试,看看我能做什么。

标签: java android beep


【解决方案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 我无法用一只耳朵播放音调。这没有明显的效果。所有的音调听起来都一样,它们来自两个耳机。我只希望一个耳机在我必须引导一个人朝任一方向的情况下工作。
猜你喜欢
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-03
  • 1970-01-01
相关资源
最近更新 更多