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

Android openal C++

列克夫人的假日 9 years, 10 months ago

Your Answer