CocosDenshion 无法播放录制的声音
Posted
技术标签:
【中文标题】CocosDenshion 无法播放录制的声音【英文标题】:Recorded sound is not playing with CocosDenshion 【发布时间】:2012-09-24 07:11:41 【问题描述】:我用 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 是最简单的方法。 我应该检查或修复哪些设置或其他设置才能播放录制的声音?
【问题讨论】:
【参考方案1】:问题解决了,首先我改变了创建 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);
一切正常。
【讨论】:
以上是关于CocosDenshion 无法播放录制的声音的主要内容,如果未能解决你的问题,请参考以下文章