2015-01-07 2 views
5

Можно ли записать выход аудио в приложении с использованием Swift? Так, например, скажем, я слушаю подкаст, и я хочу, в отдельном приложении записать небольшой сегмент аудио подкаста. Есть ли способ сделать это?Запись звукового сигнала с помощью Swift

Я осмотрелся, но смог найти информацию о записи записи микрофона и т. Д.

+0

Нет. Вы не можете. По причинам, которые должны быть очевидны для обеспечения конфиденциальности и управления правами. – marko

+0

@marko Когда вы говорите, хорошо иметь _some_ идею, о чем говорят. – matt

+0

OP, похоже, хочет перехватить выходной звук * другого приложения * в iOS, чтобы записать его. Кроме того, подразумевается, что исходный материал недоступен другим, так как вы явно получили его таким образом. Этот вопрос часто задают сказку, и ответ не меняется, и это не так. Если бы это было возможно, это позволило бы приложениям злонамеренно записывать звук с телефонных звонков (или VOIP) и позволять использовать цифровой звук платного контента таким образом, который не был предназначен издателю. – marko

ответ

2

Это зависит от того, как вы производите звук. Если производство аудио находится под вашим контролем, вы можете поместить на выходе ответчик и записать его в файл во время его воспроизведения. Самый простой способ - это новая функция AVAudioEngine (есть и другие способы, но AVAudioEngine - это в основном простой интерфейс).

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

+0

Хорошо, мне кажется, у меня было бы два варианта, если бы я захотел захватить аудио сегмент «внешнего» подкаста (тот, который у меня еще нет полной копии): 1) буферизует его из источника и записи в определенный момент; или 2) загрузите его полностью - в этот момент у меня будет доступ к звуковым данным, как вы сказали, - а затем, так как я контролировал данные, я мог записать его сегмент. Звучит неплохо? –

+0

(1) звучит правильно, так как это должно быть то, что приложения, записывающие радиопотоки, действительно делают. Что касается (2), если вы полностью загрузили его, вы не захотите записывать его сегмент; скачать _is_ запись. – matt

+0

Предположительно, приложения, которые записывают поток, используют службы очереди звука или некоторые аналогичные бит Core Audio. – matt

1

Я считаю, что вы должны написать расширение ядра, чтобы сделать это

https://developer.apple.com/library/mac/documentation/Darwin/Conceptual/KEXTConcept/KEXTConceptIOKit/iokit_tutorial.html

Вы должны были бы сделать свой собственный аудио драйвер для записи его

Похоже, что

Вот как солоничный звук звукоизолирован.

http://features.en.softonic.com/how-to-record-internal-sound-on-a-mac

Смежные вопросы