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

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

28.01.2016, 14:01. Просмотров 408. Ответов 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?
http://www.cyberforum.ru/ios-dev/thread946877.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2016, 14:01
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сохранение Audio Unit (Objective-C):

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...

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

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

Драйвер на 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...

Realtek HD Audio / VIA HD audio
Не работает Realtek HD audio drivers, установил -- все нормально, но сам...

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


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

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

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