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 无法播放录制的声音的主要内容,如果未能解决你的问题,请参考以下文章

为啥我使用 WinAPI C++ 录制的声音无法正常播放?

屏幕录制时没有声音是怎么回事

什么录音软件可以录制电脑内部播放的声音

使用 Python 录制或播放音频无法在 Mac 上运行:没有错误和没有声音

影视剧中的歌曲怎么录制 怎么录背景音乐

如何录制电脑内部声音 视频中的音频怎么录制