Android OpenAL 录音参数不正确

编译了 OpenAL 源码,ALSOFT_VERSION 是 "1.12.854"

播放声音一系列功能都正常,但是录音设备一直打不开,错误描述是无效的参数
俺的代码如下:

ALCdevice* s_device_cap_ = NULL;
ALCcontext* s_context_cap_ = NULL;

s_device_cap_ = alcCaptureOpenDevice(NULL, rate, format, buffer_size);
if (NULL != s_device_cap_) {
    s_context_cap_ = alcCreateContext(s_device_cap_, NULL);
    alcMakeContextCurrent(s_context_cap_);
    ...
} else {
    LOGE("audio capture init failed: %x", alcGetError(NULL));
}

打开的参数尝试过:

8000, AL_FORMAT_MONO16, 640
8000, AL_FORMAT_MONO16, 8000
44100, AL_FORMAT_MONO16, 640
44100, AL_FORMAT_MONO16, 44100

第一个参数 NULL 也替换过

alcGetString(NULL, ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER)
alcGetString(NULL, ALC_CAPTURE_DEVICE_SPECIFIER)

都只能打印初始化失败的信息,错误码对应的枚举是 ALC_INVALID_VALUE

肿么办呀,亲们

update: 已确保 alcIsExtensionPresent(NULL, "ALC_EXT_CAPTURE") 返回 AL_TRUE

阅读 5k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题