Пример кода для того, чтобы записать аудио от Mac в Какао и сохранить в файл?

Не уверен, является ли это единственной опцией, но одной из опций является использование вспомогательной функции, у которой есть универсальный параметр, который будет захватывать фактический тип передаваемой функции, но который также будет обеспечивать возвращаемый тип (c: number)=> number.

function fn<T extends (...a: any[]) => (c: number) => number>(o: T) {
  return o;
}
const createSum5 = fn(() => c => c + 5)
const createMultiplyN = fn((n: number) => c => n * c);
const createWordsSum = fn((word: string) => c => word.length + c);

Я не верю, что существует другая опция, так как машинопись не допускает частичного вывода для переменных (или, более конкретно, ограниченного вывода), это можно сделать только с помощью функции.

19
задан Columbia says Reinstate Monica 27 October 2016 в 14:02
поделиться

2 ответа

Работа со звуком в Mac OS X требует взаимодействия с Core Audio. Для краткого обзора, взгляните на Обзор Core Audio .

Вам потребуется интерфейс с AUHAL для выполнения ввода и вывода; существует техническое примечание , в котором подробно описаны шаги, необходимые для этого. Кажется, что этот код обычно пишется на C ++, поскольку это процедура, взятая в демонстрации SimplePlayThru .

Это не охватывает фактических шагов, необходимых для захвата этого аудиовхода. Тем не мение, эти ссылки должны предоставить вам достаточно примеров кода, чтобы начать взаимодействие с вашим устройством ввода. Я опубликую больше ссылок в этом ответе, если столкнусь с ними.


Взгляните на / Developer / Example / CoreAudio / Services / AudioFileTools . В частности, посмотрите afrecord.cpp . По общему признанию, это не какао как таковое ; Само какао не имеет особых возможностей для записи. Если вы хотите взаимодействовать с файлом C ++ там, вам, вероятно, потребуется написать немного Objective C ++, как в SimplePlayThru.

Само какао не имеет особых возможностей для записи. Если вы хотите взаимодействовать с файлом C ++ там, вам, вероятно, потребуется написать немного Objective C ++, как в SimplePlayThru.

Само какао не имеет особых возможностей для записи. Если вы хотите взаимодействовать с файлом C ++ там, вам, вероятно, потребуется написать немного Objective C ++, как в SimplePlayThru.

10
ответ дан 30 November 2019 в 05:11
поделиться

На веб-сайте Улли Кустерерса
есть хороший пример кода.
Кокоадев также имеет статью по этой теме. Исходный код внизу страницы использует API-интерфейс QuickTimes Sequence Grabber. Я бы выбрал Core Audio.

3
ответ дан 30 November 2019 в 05:11
поделиться