Потоковое аудио с iOS - PullRequest
20 голосов
/ 29 мая 2011

Как мне начать потоковую передачу звука с устройства iOS на другое устройство, такое как Mac или другое устройство iOS?Я могу найти только такие решения, как AirPlay в Google, и ничего о том, как это сделать, в вашем собственном приложении.Я бы предположил, что вам придется пройти через какой-нибудь сервер.

Чтобы было ясно, я не собираюсь дублировать AirPlay.Я ищу очень простой VoIP.

Ответы [ 5 ]

2 голосов
/ 08 июля 2011

пример использования VOIP:

Шаг 1. запись звука с помощью AV Foundation с использованием компрессионного кодера
Шаг 2. Потоковая передача пакетов на другое устройство (например, RTP)
Шаг 3. Декодирование и воспроизведениеаудиопакеты на удаленном устройстве

Более сложный случай использования VOIP включает в себя обнаружение пользователей, установление соединений.

Эти ссылки могут помочь вам начать

http://developer.apple.com/library/ios/#DOCUMENTATION/AudioVideo/Conceptual/MultimediaPG/UsingAudio/UsingAudio.html

http://en.wikipedia.org/wiki/Real-time_Transport_Protocol

2 голосов
/ 12 июля 2011

РЕДАКТИРОВАТЬ - 12 августа 2011 г.

Я не осознавал, что вы хотите переходить с устройства на устройство со звуком.Вы всегда можете использовать CFNetwork и просто подключить устройство.Уловка будет обнаруживать это.Посмотрите на услуги Bonjour, а также.Вам все равно нужно будет использовать AudioToolbox для обработки аудио в буферы и через Bonjour или через сокет.

Конец редактирования

@ greg AVFoundation предоставляет такие вещи, как AVAudioRecorder,но он не позволяет вам транслировать пакеты так, как он хочет.

Я бы посмотрел на AudioToolbox.Если вы используете AudioQueue, вы можете указать формат для потоковой передачи.Затем добавьте обратный вызов очереди ввода, и вы получите доступ к необработанным пакетам записанного звука.

Посмотрите на iLBC кодек.Он имеет достаточно малую площадь, чтобы вы могли делать все за 3 грамма.

Вот отличный справочник Apple по программированию AudioQueue: http://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/AudioQueueProgrammingGuide/AQRecord/RecordingAudio.html

Удачи!

0 голосов
/ 30 января 2018

Вы бы сделали это в точности так:

https://drive.google.com/open?id=1tKgVl0X92SYvgpvbljRzilXNQ6iBcjqM

Запустите это приложение на двух устройствах iOS;он автоматически подключит оба устройства к вашей сети и начнет потоковую передачу аудио между ними.

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

enter image description here

Вам нужны последние бета-версии Xcode 9 и iOS 11.

Дайте мне знать, если у вас есть какие-либо вопросы.

0 голосов
/ 08 августа 2011

Я думаю, что хорошим началом было бы понять старый пример для CoreAudio: SpeakHere (он записывает и воспроизводит звуки с помощью API низкого уровня C. CoreAudio - один из потомков AVFoundation)

Как сказал @DexterW, вам понадобятся знания AudioQueue и т. Д.

После этого вы можете начать думать на серверах / пакетах для потоковой передачи:)

Hopeэто помогает.

0 голосов
/ 29 мая 2011

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

Тем не менее, я бы посоветовал взглянуть на Darwin Streaming Server .Кажется, он немного староват, но с открытым исходным кодом и может быть вам полезен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...