2

我在 iOS 中有一个示例应用程序,用于实时从麦克风和播放中捕获音频。我想在 macosx 中转换这个应用程序,但发现了一些错误。当我尝试在 macosx 中编译我的应用程序时,它会在“kAudioSessionCategory_PlayAndRecord”、“AudioSessionSetActive”上返回错误

flag = kAudioSessionCategory_PlayAndRecord;
AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(flag), &flag);
//Float32 fflag = 1.0;
//AudioSessionSetProperty(kAudioSessionProperty_InputGainScalar, sizeof(fflag), &fflag);
flag = kAudioSessionMode_VoiceChat;
AudioSessionSetProperty(kAudioSessionProperty_Mode, sizeof(flag), &flag);

AudioSessionSetActive(true);

对于上面的代码行,macosx 中的等效代码是什么。

4

1 回答 1

2

简而言之,在 OS X 上您不需要 AudioSession——它的作用是协调设备上音频硬件的共享使用。在 OS X 上,所有应用程序都可以同时访问音频硬件。事实上,如果你检查一下,AudioToolbox/AudioSession.h你会看到__OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_2_0);所有的功能——这意味着 AudioSession 在 OS X 上不可用。

您可以简单地#ifdef为您的 OS X 构建项目中的任何 AudioSession 代码。

于 2012-12-18T12:33:35.463 回答