Форум программистов, компьютерный форум, киберфорум
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
MrRay
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 4
#1

Сохранение Audio Unit - Objective-C

28.01.2016, 14:01. Просмотров 348. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сохранение Audio Unit (Objective-C):

Unit-testing UIViewControllers - Программирование iOS
Всем привет! Возник вопрос по поводу тестирования view controller'ов. Посмотрел, как это делает Jon Reid в своем туториале:...

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

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

Multimedia Audio Adapfer Realtek ALC655@SiS 7012 Audio Device - Звук, акустика
материнка типа P4S8X-MX ,Multimedia Audio Adapfer Realtek ALC655@SiS 7012 Audio Device ПРОБЛЕМА!Были подключены динамики к компу...

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

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

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

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 - PHP
подскажите что за ошибка в коде? Warning: Cannot modify header information - headers already sent by (output started at...

New Audio; audio.replay? - JavaScript
Здравствуйте все, есть у меня такой вопрос: если создавать звук с помощью javascript и следует последовательность var audio = new...

.NET 4.x Сохранение списка объектов класса в ручную, сохранение в XML. Без сериализации. - C#
Здравствуйте! Хотел спросить. Как можно сохранить список объектов в XML файл вручную? Я сериализацией делаю так: Класс, который будем...

Сохранение положения компонента на форме (Сохранение параметра в Ini-файл) - C++ Builder
Не знаю верно ли назвал тему. Доброго вечера тебе, всяк сюда входящий. Подскажите пожалуйста с вопросом: Имеется Form1, на нем...


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

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

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