2016-05-26 3 views
0

Я разрабатываю приложение OSX, где я воспроизвожу звук через встроенный синтезатор DLS (kAudioUnitSubType_DLSSynth) с использованием Core Audio. Я хотел бы захватить вывод синтезатора и экспортировать его в файл (.aif, .mp3, .caf и т. Д.). Это похоже на прямолинейную вещь, но я нигде не могу найти пример. Запись с помощью встроенного микрофона очень проста. Это трудно.Как записать выход синтезатора DLS (kAudioUnitSubType_DLSSynth)?

Может ли кто-нибудь указать мне пример или дать мне несколько советов?

+0

Можете ли вы, пожалуйста, опубликовать часть своего кода, чтобы показать, как далеко продвинулись ваши индивидуальные исследования? Ваша функция обратного вызова в частности? Это также поможет другим помочь вам. Благодарю. – user3078414

ответ

0

Я полагаю, вы настраиваете в AUGraph, состоящий из двух компонентов: выход Аудиосистема принимая место выходного узла:

AudioComponentDescription outputdesc = {0}; 
outputdesc.componentType = kAudioUnitType_Output; 
outputdesc.componentSubType = kAudioUnitSubType_DefaultOutput; 
outputdesc.componentManufacturer = kAudioUnitManufacturer_Apple; 
AUNode outputNode; 
AUGraphAddNode(player->graph, &outputcd, &outputNode); 

и аудио единицы .componentSubType = kAudioUnitSubType_DLSSynth «вверх по течению» от него , имеющего место на приборе .

Вы можете написать и зарегистрировать входной обратный вызов выходного блока , а не инструмент блока, что позволяет захватывать какой бы то ни coems ​​от «вверх по течению». Это самый простой ответ. «Практическое руководство» довольно прилично освещается в ряде учебников и примеров кода, но также требует небольшого количества отдельных исследований. Работа с форматами записи и преобразованием формата уже является отдельным вопросом, IMO.

+0

Да, это именно то, что я делаю. Я использую AUGraphSetNodeInputCallback для регистрации обратного вызова ввода? –

+0

Хорошо, это помогло мне направить еще несколько исследований (в рендеринг). Спасибо за точку в правильном направлении. Очень признателен. –

+0

@BDWild - Вы когда-нибудь получали свою обратную связь? – Chris