1

我使用 AVAudioRecorder 录制声音(使用本教程http://www.tumblr.com/tagged/avaudiorecorder?before=1300075871),然后尝试使用 CocosDenshion 播放录制的声音:

CDSoundEngine* soundEngine = [[CDSoundEngine alloc] init];
NSArray *defs = [NSArray arrayWithObjects: [NSNumber numberWithInt:1],nil];
[soundEngine defineSourceGroups:defs];
//......
[soundEngine loadBuffer:1 filePath:[recorder.url path]];
[soundEngine playSound:1 sourceGroupId:0 pitch:2.0f pan:0 gain:1.0f loop:NO];

此代码在模拟器上运行良好,但在设备(iPad 2、iOS 5.1.1)上 - 没有播放声音。我会尝试用 AVAudioPlayer 播放录制的声音——它播放得很好,但我需要调整声音,发现使用 CocosDenshion 是最简单的方法。我应该检查或修复哪些设置或其他设置才能播放录制的声音?

4

1 回答 1

0

问题解决了,首先我改变了创建 CDSoundEngine 实例的方式,使用 CDAudioManager:

CDSoundEngine = [CDAudioManager sharedManager].soundEngine;

然后,在播放 CDAudioManager 的录制声音之前将模式设置为 kAMM_PlayAndRecord:

[CDAudionManager sharedManager] setMode:kAMM_PlayAndRecord];

最后将 AudioSession 重定向到扬声器:

UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute, sizeof (audioRouteOverride),&audioRouteOverride);

一切正常。

于 2012-09-25T07:42:00.193 回答