Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
MrRay
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 4
1

Сохранение Audio Unit

28.01.2016, 14:01. Просмотров 418. Ответов 0

Необходимо организовать сохранение AVAudioPlayerNode, на который добавлено много всяких эффектов. Пишу под мак. Есть вот такая реализация http://stackoverflow.com/questions/3...-unit-and-writ. (или на гите: https://github.com/VladimirKravchenko/AVAudioEngineOfflineRender)Однако к сожалению она работает только на iOS, если я правильно понял то нужно каким-то образом исправить вот этот кусок:
Objective-C
1
2
3
4
5
6
7
8
 UInt32 codecManufacturer = kAppleSoftwareAudioCodecManufacturer;
    status = ExtAudioFileSetProperty(
            audioFile, kExtAudioFileProperty_CodecManufacturer, sizeof(UInt32), &codecManufacturer
    );
    status = ExtAudioFileSetProperty(
            audioFile, kExtAudioFileProperty_ClientDataFormat, sizeof(AudioStreamBasicDescription), audioDescription
    );
    status = ExtAudioFileWriteAsync(audioFile, 0, NULL);
Во-первых я не знаю на что нужно заменить kAppleSoftwareAudioCodecManufacturer,поскольку оно только под iOS.
Во-вторых даже если я выставил другое свойство, то получаю сообщение в логах: Can not render audio unit


Пытаюсь заменить код вот на это:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 /***Getting the size of a Property***/
    UInt32 size = 4096;
    
    
    //Gets the size of the Stream Format Property and if it is writable
    status = AudioUnitGetPropertyInfo(self.engine.outputNode.audioUnit,
                                               kAudioUnitProperty_StreamFormat,
                                               kAudioUnitScope_Output,
                                               0,
                                               &size, NULL);
    
    //Get the current stream format of the output
    status = AudioUnitGetProperty (self.engine.outputNode.audioUnit,
                                   kAudioUnitProperty_StreamFormat,
                                   kAudioUnitScope_Output,
                                   0,
                                   &destinationFormat,
                                   &size);
    
    //Set the stream format of the output to match the input
    status = AudioUnitSetProperty (self.engine.outputNode.audioUnit,
                                   kAudioUnitProperty_StreamFormat,
                                   kAudioUnitScope_Input,
                                   0,
                                   &destinationFormat,
                                   size);
    
    UInt32 codecManufacturer = kAudioUnitManufacturer_Apple;
    status = ExtAudioFileSetProperty(
                                     audioFile, kExtAudioFileProperty_CodecManufacturer, sizeof(UInt32), &codecManufacturer
                                     );
    status = ExtAudioFileSetProperty(
                                     audioFile, kExtAudioFileProperty_ClientDataFormat, sizeof(AudioStreamBasicDescription), audioDescription
                                     );
    status = ExtAudioFileWriteAsync(audioFile, 0, NULL);
Итак вопрос в том, каким образом изменить код из той реализации, чтобы сохранение заработало под OS X?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2016, 14:01
Ответы с готовыми решениями:

Unit-testing UIViewControllers
Всем привет! Возник вопрос по поводу тестирования view controller'ов....

Core Audio
Кто нибуль работал с Core Audio с AudioUnit? Нужна помощь. :)

Unit Tests для проекта с Unit Of Work
Привет. Вынужден снова обратиться за помощью. Пишу блог. Архитектура такова,...

Возможно ли как-то перевести unit C++ в unit delphi
Возможно ли как-то перевести unit C++ в unit delphi?

Multimedia Audio Adapfer Realtek ALC655@SiS 7012 Audio Device
материнка типа P4S8X-MX ,Multimedia Audio Adapfer Realtek ALC655@SiS 7012...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2016, 14:01

Не работает звук - нет драйвера на Audio Device on High Definition Audio Bus
Переустановил систему на компе на виндуоз XP. Звука нет Диспетчер устройств...

Драйвер на Realtek AC'97 Audio for VIA (R) Audio Controller
помогите, первый раз такая проблема! Переустановил Виндовс на своем компе...

Warning: Cannot modify header information - headers already sent by (output started at Z:\home\unit.su\WWW\config.php:1) in Z:\home\unit.su\WWW\aut.ph
подскажите что за ошибка в коде? Warning: Cannot modify header information...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru