开放初始化问题,仅ipod(?)
题
我的开放性问题似乎只在iPod硬件中发生,奇怪的是 曾是 正常工作,现在不是。
我正在设置音频会话:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayAndRecord error: nil];
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty(kAudioSessionProperty_OverrideAudioRoute,
sizeof(UInt32), &audioRouteOverride);
AudioSessionSetActive(YES);
并初始化开放式:
device = alcOpenDevice(NULL);
if (!device) {
NSLog(@"Could not open default OpenAL device.");
return NO;
}
context = alcCreateContext(device, 0);
if (!context) {
NSLog(@"Failed to create OpenAL context for default device.");
return NO;
}
BOOL success = alcMakeContextCurrent(context); // fails here
if (!success) {
NSLog(@"Failed to set current OpenAL context.");
return NO;
输出是:
AudioStreamBasicDescription: 2 ch, 44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved
2010-10-27 10:51:09.261 FinchTestProject[239:307] Failed to set current OpenAL context.
因此,alcmakecontextcurrent函数正在返回false,我不确定为什么。音频并不是我的专业知识,我找不到太多的信息,因此,您能为我提供任何帮助。
谢谢!
编辑:我发现如果我扭转了初始化的顺序 - 那就是如果我初始化开放式,然后是Audiosession,它可以正常工作...尽管这是我以前使用过的顺序,并且它不起作用,所以有些有趣肯定是在进行;另外,它仍然不适用于iOS的旧版本
解决方案
初始化的反向顺序似乎可以正常运行,开放式音调
其他提示
只是一个疯狂的猜测:
第一代iPod Touch没有 有 演讲者。因此,也许您不能将音频途径覆盖到不存在的扬声器。
编辑: :哦,只有最新的(第四代)iPod Touch都内置了一个麦克风。所有其他世代都要求插入耳机(带有麦克风)以记录。也许这就是为什么它突然停止工作的原因,耳机被删除了。
不隶属于 StackOverflow