将iOS应用程序移植到Mac OS-X(音频捕获和回放)

时间:2012-12-18 12:24:29

标签: ios macos audio core-audio audio-recording

我在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中的等效代码是什么。

1 个答案:

答案 0 :(得分:2)

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

您可以简单#ifdef项目中的任何AudioSession代码,用于您的OS X版本。