Форум программистов, компьютерный форум CyberForum.ru

Objective-C

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

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

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

Необходимо организовать сохранение AVAudioPlayerNode, на который добавлено много всяких эффектов. Пишу под мак. Есть вот такая реализация http://stackoverflow.com/questions/3...-unit-and-writ. (или на гите: https://github.com/VladimirKravchenk...eOfflineRender)Однако к сожалению она работает только на 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?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2016, 14:01     Сохранение Audio Unit
Посмотрите здесь:

Сохранение - Objective-C
как сделать сохранение...-что бы после остановки симмулятора-работа не сбрасывалась, а сохранялась и при новом запуске просто продолжала...

Unit - C++ Builder
Плиз помогите подключить модуль Delphi 7 в С++ Builder 6 и как его обьявить в проекте т.е. у мя есть модуль Delphi который шифрует...

Unit - Pascal
1. Запустите программную среду языка Паскаль. 2. Составить программу, в которой: (100 баллов) 1) вводятся элементы матрицы; 2)...

Unit - Delphi
Как пользоваться в Unit3 переменной f:text из Unit 1

Unit - C++ Builder
У мя такой вопрос: Можно ли прасмотреть весь код приложения в одном файле, приложение написано на С++ Builder 6, если да, то как он...

Модуль Unit - Pascal
Кто подскажет , в чем может быть проблема, постоянно выбивает ошибку в init , а именно здесь( s1:= s1 + uPower/factorial;) Вот сам...

Unit-тестирование - C#
Здраствуйте, форумчане.Собственно решил разобраться с Unit-тестами.Вопрос:Нужно ли переопределять Equals(), для собственного типа?Ошибка на...

Unit тесты - Java
Доброе время суток! Хочу попросить сторонников и противников Unit тестирования высказать свое мнение по этому поводу. Какие негативные...

Подработать UNIT - Delphi
в общем есть рабочий юнит рисования окружности,нужно сделать аналогично для рисования квадрата,пробую,ошибка( прикладываю рабочий unit...

Could not compile used unit - Delphi БД
Всем привет! В программу вбил проверку авторизации, сделал форму вот код unit Unit14; interface uses Windows, Messages,...

Project и Unit - Delphi
Всем привет У меня возник вопрос можно ли как подключить какой нибуть юнит к форме которая создаёцца динамично как динамично...

Unit Tests - C#
У меня 2005 студия pro и на ней нету unit test'ов. можно где-то скачать инструмент. чтоб не ставить другую студию и тд.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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