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