gpt4 book ai didi

android - 如何: use AudioManager startBluetoothSco() function in android

转载 作者:行者123 更新时间:2023-11-29 02:02:32 27 4
gpt4 key购买 nike

如果我想为 AudioManager.startBluetoothSco() 函数设置限制,我应该在哪里设置?从这里: http://developer.android.com/reference/android/media/AudioManager.html#startBluetoothSco()

限制是:

• 流类型必须是 STREAM_VOICE_CALL

•格式必须是单声道

• 采样必须为 16kHz 或 8kHz

STREAM_VOICE_CALL 可以设置为:

AM.setMode(AudioManager.MODE_IN_CALL);

AM.setStreamSolo(AudioManager.STREAM_VOICE_CALL, true);

单声道和采样可以设置在:

audioRecord = new AudioRecord(
android.media.MediaRecorder.AudioSource.MIC, 8000,
AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, buffersizebytes);

谁能想到或知道不同的方法?

最佳答案

您提供的 Android SDK 文档链接说明如下:

“...如果建立了 SCO 连接,则以下限制适用于音频输出流,以便它们可以路由到 SCO 耳机:

  • 流类型必须是 STREAM_VOICE_CALL
  • 格式必须是单声道
  • 采样必须为 16kHz 或 8kHz

以下限制适用于输入流:

  • 格式必须是单声道
  • 采样必须为 8kHz"

您对“AudioRecord”的使用是一个输入流,不需要关注 w/STREAM_VOICE_CALL:

对于“AudioTrack”,您需要在 SCO 模式下执行以下操作:

AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, //
8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, //
minBufferSizeInBytes, //
AudioTrack.MODE_STREAM);

在 SCO 模式下时如下:

AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, //
8000, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, //
minBufferSizeInBytes, //
AudioTrack.MODE_STREAM);

关于android - 如何: use AudioManager startBluetoothSco() function in android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11861180/

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