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

Problem solved, first I've changed the way to create CDSoundEngine instance, to use CDAudioManager:

CDSoundEngine = [CDAudioManager sharedManager].soundEngine;

Then, before playing recorded sound set mode for CDAudioManager to kAMM_PlayAndRecord:

[CDAudionManager sharedManager] setMode:kAMM_PlayAndRecord];

And finally redirect AudioSession to speakerphone:

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

and all worked fine.

于 2012-09-25T07:42:00.193 に答える