Просмотр исходного кода

Stop CoreAudio from doing expensive audio rate conversion

Sam Lantinga 8 лет назад
Родитель
Сommit
71a4e8ed13
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      src/audio/coreaudio/SDL_coreaudio.m

+ 7 - 0
src/audio/coreaudio/SDL_coreaudio.m

@@ -734,6 +734,13 @@ COREAUDIO_OpenDevice(_THIS, void *handle, const char *devname, int iscapture)
     if (!update_audio_session(this, SDL_TRUE)) {
         return -1;
     }
+
+    /* Stop CoreAudio from doing expensive audio rate conversion */
+    @autoreleasepool {
+        AVAudioSession* session = [AVAudioSession sharedInstance];
+        [session setPreferredSampleRate:this->spec.freq error:nil];
+        this->spec.freq = (int)session.sampleRate;
+    }
 #endif
 
     /* Setup a AudioStreamBasicDescription with the requested format */