Записанный звук не воспроизводится с CocosDenshion

Я записываю голос с помощью 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. Какие настройки или что-то еще я должен проверить или исправить, чтобы воспроизвести записанный звук?


person user1693650    schedule 24.09.2012    source источник


Ответы (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);

и все работало нормально.

person user1693650    schedule 25.09.2012