Можно ли изменить высоту воспроизведения аудио-очереди - PullRequest
1 голос
/ 13 мая 2011

Предполагается, что это возможно в Mac OS X, переписав частоту дискретизации в AudioStreamBasicDescription, а затем создайте новую очередь вывода.

Мне удалось получить частоту дискретизации по умолчанию и записать новую (т.е. заменить 44100 на 48000), но это не привело к изменению высоты тона в выходном сигнале.

err = AudioFileGetProperty(mAudioFile, kAudioFilePropertyDataFormat, &size, &mDataFormat);
        if (err != noErr)
            NSLog(@"Couldn't determine the audio file format");
        Float64 mySampleRate = mDataFormat.mSampleRate; //the initial rate
        if (inRate != 1) {
//write a new value
            mDataFormat.mSampleRate = inRate;
            //then 
err = AudioQueueNewOutput etc.

Любые предложения будут с благодарностью.

1 Ответ

0 голосов
/ 18 января 2012

Изменение частоты дискретизации не меняет высоту звука. Вы можете почувствовать, что что-то, воспроизводимое быстрее, имеет более высокую высоту звука. Однако это скорее восприятие, чем реальность.

Чтобы изменить высоту звука, вам необходимо обработать аудиоданные с помощью библиотеки цифровой обработки сигналов (DSP). В качестве альтернативы взгляните на запуск через AudioUnit:

Руководство по программированию аудиоустройства

...