我正在尝试使用 PortAudio 和 libsndfile 在我的 Windows 7 机器上以独占模式播放 .wav 文件,但我得到了
错误号 -9984 “不兼容的主机 API 特定流信息”。
我填写了 PaWasapiStreamInfo 结构如下:
struct PaWasapiStreamInfo wasapiInfo ;
wasapiInfo.size = sizeof(PaWasapiStreamInfo);
wasapiInfo.hostApiType = paWASAPI;
wasapiInfo.version = 1;
wasapiInfo.flags = paWinWasapiExclusive;
wasapiInfo.channelMask = NULL;
wasapiInfo.hostProcessorOutput = NULL;
wasapiInfo.hostProcessorInput = NULL;
wasapiInfo.threadPriority = eThreadPriorityProAudio;
然后分配 hostApiSpecificStreamInfo 参数并通过 Pa_OpenStream 打开流,如下所示:
/* stereo or mono */
out_param.channelCount = sfinfo.channels;
out_param.sampleFormat = paInt16;
out_param.suggestedLatency = _GetDeviceInfo(out_param.device)->defaultLowOutputLatency;
out_param.hostApiSpecificStreamInfo = (&wasapiInfo);
err = Pa_OpenStream(&stream, NULL, &out_param, sfinfo.samplerate,
paFramesPerBufferUnspecified, paClipOff,
output_cb, file);
我错过了一步吗?
谢谢,泰勒