[编辑:这是一个确认的 iOS 模拟器错误。出现在 5.0 中并保留在 5.1 中。请参阅下面我自己的答案中的链接]。
我伙计们。这是我的第一个问题。我真的迷路了...
我在使用 AudioQueue 在 iOS 中播放声音时遇到了一些麻烦。当我使用 AudioQueueNewOutput 创建一个 AudioQueue 时,我得到一个 EXC_BAD_ACCESS。它似乎发生在某些音频线程中(Xcode 显示线程 4)。
AudioQueue 是这样创建的:
AudioQueueNewOutput(&desc, audioQueueCallback, this, CFRunLoopGetCurrent(),
kCFRunLoopDefaultMode, 0, &audioQueue);
(desc 包含 iOS 规范播放格式)。
这是编辑器显示的:
AudioToolbox`PowerMeter::PowerMeter():
0x16ee92: pushl %ebp
0x16ee93: movl %esp, %ebp
0x16ee95: movl 8(%ebp), %eax
0x16ee98: movb $0, (%eax)
0x16ee9b: movl $0, 8(%eax)
0x16eea2: movl $0, 4(%eax)
0x16eea9: movl $1064866676, 24(%eax)
0x16eeb0: movl $3161095930, 20(%eax)
0x16eeb7: movl $1066426957, 40(%eax)
0x16eebe: movl $3539053052, 36(%eax)
0x16eec5: movl $0, 92(%eax)
0x16eecc: movl $0, 88(%eax)
0x16eed3: movl $0, 108(%eax)
0x16eeda: movl $0, 104(%eax)
0x16eee1: movl $0, 100(%eax)
0x16eee8: movl $0, 96(%eax)
0x16eeef: pxor %xmm0, %xmm0
0x16eef3: movaps %xmm0, 64(%eax)
0x16eef7: movl $0, 60(%eax)
0x16eefe: movl $0, 56(%eax)
0x16ef05: movb $0, 52(%eax)
0x16ef09: movb $0, 53(%eax)
0x16ef0d: movl $0, 48(%eax)
0x16ef14: movl $0, 80(%eax)
0x16ef1b: movl $4294967295, 44(%eax)
0x16ef22: movl $0, 84(%eax)
0x16ef29: popl %ebp
0x16ef2a: ret
0x16ef2b: nop
0x16ef2c: nop
0x16ef2d: nop
0x16ef2e: nop
0x16ef2f: nop
Xcode 4.3.1
iOS 模拟器 5.1
Mac OS X 狮子 10.7.3
我真的很感谢你的帮助。有什么想法吗?