- Работа с потоковым аудио
- Введение
- Как транслировать аудио с ПК на Android
- Потоковое аудио с ПК на Android
- 1. Транслируйте то, что слышите
- 2. Беспроводная колонка для Android (WiFi Audio)
- 3. SoundWire
- Потоковое аудио с ПК на Android
- Потоковое аудио на телефон с этими 5 приложениями [Android]
- бандура
- AudioGalaxy
- дозвуковой
- SoundWire
- Amazon MP3
- Вывод
Работа с потоковым аудио
Введение
Конструктор
Для создания объекта нужно указать:
audioSource | Откуда ведётся запись. В нашем случае это MediaRecorder.AudioSource.MIC |
---|---|
sampleRateInHz | Частота дискретизации в герцах. Документация утверждает, что 44100Гц поддерживается всеми устройствами |
channelConfig | Конфигурация каналов. Может быть CHANNEL_IN_MONO или CHANNEL_IN_STEREO . Моно работает везде. Важно: эти константы не совпадают с количеством каналов, которое они обозначают. В этот параметр нельзя передавать 1 или 2. |
audioFormat | Формат входных данных, более известный как кодек. Может быть ENCODING_PCM_16BIT или ENCODING_PCM_8BIT |
bufferSizeInBytes | Размер того самого внутреннего буфера. Из него можно считывать аудиопоток. Размер порции считывания не должен превышать эту величину. У этого параметра есть минимально допустимое значение, которое можно получить через getMinBufferSize() . |
При своём создании объект пытается получить нужные ему ресурсы системы. Насколько удачно у него это получилось, можно узнать, вызвав функцию getState() . Если она вернёт STATE_INITIALIZED , то всё нормально, если STATE_UNINITIALIZED — значит, произошла ошибка.
Причин ошибки может быть две: слишком маленький буфер и недопустимый формат. Первого нужно избегать вызовом getMinBufferSize() . Второго, на самом деле, им же.
getMinBufferSize()
Этот статический метод выдаёт минимальный размер внутреннего буфера, при котором объект AudioRecord сможет работать. Параметры имеют тот же смысл, что и для конструктора. Следует заметить, что использование именно этой величины для записи — не лучшая идея. Если система будет ещё чем-то занята, то программа всё равно может не успевать считывать все данные подряд, и в записи будут дырки. Мне встречался совет брать размер в десять раз больше.
Получение списка форматов
Метод getMinBufferSize() имеет приятную особенность — ругаться на недопустимые для данного устройства параметры, возвращая ERROR_BAD_VALUE или ERROR . Это означает, что перебирая все возможные сочетания, можно узнать, какие форматы поддерживает устройство.
Считывание данных
Для получения данных из внутреннего буфера служит метод read() . Он существует в трёх вариантах:
- read(byte[] audioData, int offsetInBytes, int sizeInBytes)
- read(short[] audioData, int offsetInShorts, int sizeInShorts)
- read(ByteBuffer audioBuffer, int sizeInBytes)
Их параметры:
audioData | массив, в который будут записаны данные |
---|---|
audioBuffer | буфер, в который будут записаны данные |
offsetInBytes / offsetInShorts | индекс, с которого начнётся запись |
sizeInShorts | размер запрашиваемого блока данных. В байтах для ByteBuffer и byte[] , в коротких целых для short[] |
Если всё нормально, то метод вернёт количество прочитанных байт, если это вариант с ByteBuffer или byte[] , или прочитанных коротких целых для short[] . Если на момент вызова объект не был правильно инициализирован, то выдаст ERROR_INVALID_OPERATION, а если что-то не так с параметрами — ERROR_BAD_VALUE
Важно: метод блокирует вызывающий поток до тех пор, пока не считает запрошенное количество данных. Если во внутреннем буфере их недостаточно, то read() будет ожидать, пока они придут от микрофона. Поэтому метод следует вызывать из отдельного потока, иначе приложение будет висеть.
Подход, отход, фиксация
Чтобы программа могла получать данные от микрофона, нужно указать в файле AndroidManifest,xml соответствующее разрешение:
Чтобы начать запись, нужно вызвать метод startRecording() , а чтобы закончить — stop() . Запускать и останавливать запись можно сколько угодно раз.
После того, как работа с объектом закончена, следует вызвать метод release() . Он освободит все системные ресурсы, захваченные объектом. После этого объект нельзя использовать, а ссылающуюся на него переменную следует установить в null .
Важно: эти три метода, в отличие от упоминавшихся ранее, выбросят IllegalStateException , если их вызвать для неинициализированного (ну и слово. ) объекта или не в том порядке. Поэтому обращаться с ними нужно «аккуратно», т.е. через блок try .
Пример использования
Приведённый ниже класс делает всё то, о чём сказано выше. Кроме того, он посылает зарегистрированным у него Handler -ам сообщения о принятых данных. Эти данные будут обрабатываться в другом потоке, поэтому, чтобы не затереть ещё не обработанные данные новыми, использован циклический буфер.
В коде использован класс AudioFormatInfo . Он представляет собой POJO с тремя полями, описывающими формат записи: sampleRateInHz , channelConfig и audioFormat .
Источник
Как транслировать аудио с ПК на Android
Вчера вечером я смотрел фильм на ноутбуке, и мои беспроводные наушники решили умереть. Я не хотел никого разбудить, пропустив звук через динамики, а потом он ударил меня. Должен быть способ потоковой передачи звука с ПК на смартфон Android. Оказывается, есть. Работает аналогично Частное прослушивание Року но для вашего ПК все, что вам нужно, это хорошее соединение Wi-Fi. Я нашел 3 приложения, которые позволяют это делать. Посмотрим, как это работает.
Читайте: 5 приложений для синхронизации музыки для потоковой передачи музыки на несколько устройств
Потоковое аудио с ПК на Android
1. Транслируйте то, что слышите
Первым в списке «Stream What You Hear» является потоковый сервер на основе DLNA и UPnP. Вы можете использовать его для потоковой передачи мультимедийного контента с вашего компьютера на любое устройство, поддерживающее DLNA и UPnP. Я могу использовать это приложение для потоковой передачи звука на игровые консоли, телевизоры, динамики SONOS и т. Д.
Установить и использовать приложение очень просто, просто скачайте приложение с официального сайта. интернет сайт. Он работает в двух частях: сначала вам нужно установить серверное приложение на компьютер с Windows, а затем соответствующее приложение Android на свой телефон для потоковой передачи. Это приложение будет работать без сбоев, если все устройства находятся в одной сети.
Вы можете передавать аудио со своего компьютера двумя способами: Пузырьковый UPnP на вашем смартфоне Android или с помощью функции HTTP Live Streaming от SWYH. Во время моего тестирования приложение Bubble UPnP работало с SWYH, но с противоречивыми результатами. Медиа воспроизводится плавно с небольшой задержкой, если SWYH успешно устанавливает соединение с Bubble UPnP, если это вообще происходит.
HTTP Live Stream на SWYH можно использовать для потоковой передачи звука на смартфоны, и он работает с любым веб-браузером. Вам не нужно устанавливать на телефон отдельное приложение, что всегда является плюсом. Чтобы запустить HTTP-сервер, щелкните правой кнопкой мыши значок SWYH на панели задач и выберите «HTTP Live Stream» в меню «Инструменты».
Теперь скопируйте URL-адрес в браузере смартфона и нажмите «Перейти», чтобы начать прямую трансляцию звука. Он буферизуется на некоторое время, а затем начинает воспроизведение содержимого.
Я пробовал это приложение, оно хорошо работает для потоковой передачи, но имеет значительное отставание. Если вы собираетесь смотреть фильмы с такой настройкой, это, вероятно, не лучшая идея. Однако вы можете использовать эту настройку для потоковой передачи звука с ПК на Android.
- Нет приложения для установки любого приложения на смартфон
- Поддерживает любое устройство с веб-браузером
- Бесперебойная потоковая передача на устройствах UPnP, таких как телевизоры, динамики SONOS и т. Д.
- Высокая задержка при передаче звука
- Не работает с Bubble UPnP
2. Беспроводная колонка для Android (WiFi Audio)
Следующее приложение на удивление работает очень хорошо с небольшой задержкой. Беспроводной динамик для Android позволяет передавать звук с компьютера Windows на смартфон Android.
Установите приложение для Android из Магазин игр и приложение-компаньон для Windows из их Форум. Вам потребуется зарегистрироваться на их форуме, прежде чем давать вам ссылку для загрузки.
После настройки приложения на вашем смартфоне и сервере в Windows введите IP-адрес смартфона в серверном приложении на компьютере и нажмите «Пуск».
После подключения устройств вы получите звук со смартфона Android. Я обнаружил небольшую хитрость при использовании приложения. Если вы используете медиаплеер VLC, вы можете настроить задержку звука в соответствии с задержкой при передаче. После настройки задержки звука звук, полученный на смартфоне, был идеально синхронизирован.
- Низкая задержка
- Легко настроить
- Работает без интернета
- Для скачивания сервера необходима регистрация на форуме
- Нет возможности настроить задержку или битрейт
3. SoundWire
Затем у нас есть SoundWire, приложение для Android для воспроизведения звука с вашего компьютера на Android. Это приложение работает аналогично предыдущему приложению Wifi Audio и имеет несколько дополнительных функций. Вы можете настроить размер аудиобуфера, чтобы снизить задержку при уменьшении и более плавное воспроизведение при увеличении. Это приложение выполняет все флажки, его легко установить, оно работает по Wi-Fi, имеет низкую задержку и бесплатное.
Чтобы настроить SoundWire, установите Приложение для Android на вашем телефоне и сопутствующий сервер приложение на вашем компьютере. Сопутствующее приложение работает в Windows, Linux и Raspberry Pi, убедитесь, что вы установили правильную версию.
После установки откройте серверное приложение и приложение SoundWire, убедитесь, что устройства находятся в одной сети. Введите адрес сервера в приложении для Android. Коснитесь значка Soundwire, чтобы подключиться.
После подключения вы можете выбрать аудиовход и частоту звука в настройках. Сервер работает в системном трее и транслирует все, что играет на вашем компьютере, пока вы не отключитесь.
- Несколько вариантов аудиовхода
- Вариант записи
- Вы можете настроить частоту, битрейт и задержку.
- Приложение периодически прерывает передачу, что немного раздражает.
Установить SoundWire на Android
Потоковое аудио с ПК на Android
Это были три способа потоковой передачи звука с ПК на Android. Первое приложение SWYH лучше всего подходит для обычной передачи звука, например для потоковой передачи и воспроизведения музыки. У него значительное отставание, поэтому я бы не рекомендовал его для просмотра фильмов. WifiAudio приличный и совершенно бесплатный, и вы не получаете никаких прерываний, как SoundWire, но SoundWire имеет больше функций. SoundWire позволяет регулировать битрейт и частоту в зависимости от просматриваемого контента, что делает его подходящим для просмотра фильмов. Какой метод вы используете для потоковой передачи звука с ПК на Android? Расскажите нам в комментариях ниже.
Читайте: Приложения для удаленного управления телефоном Android с ПК (USB и WiFi)
Источник
Потоковое аудио на телефон с этими 5 приложениями [Android]
Я большой поклонник потокового мультимедиа. Будь то YouTube, Hulu, Netflix или что-то еще, я люблю возможность транслировать по требованию. Это открывает большую гибкость — особенно с точки зрения доступа (потокового мультимедиа, которого у меня нет) и расписания (потоковое воспроизведение, когда это удобно для меня). И теперь вы можете передавать потоковое мультимедиа прямо на ваше устройство Android.
Смартфоны развились до такой степени, что они уже не просто «смартфоны». Теперь это многоцелевые мобильные устройства. Одним из основных применений моего Android является воспроизведение музыки, но выбор музыки часто ограничен тем, что я могу хранить в пространстве. Но благодаря появлению технологии потоковой передачи я могу транслировать аудио на свой Android — будь то из Интернета, с моего компьютера или из других источников.
Проверьте эти удивительные приложения для Android, которые раскроют возможность потоковой передачи на вашем устройстве Android.
бандура
Мне было бы трудно найти кого-то, кто не слышал о Пандоре, но я был бы упущен, если бы исключил его из этого обзора из-за его популярности и полезности. В случае, если вы прожили в прошлом десятилетии, Pandora — это онлайн-сервис потокового радио, который адаптирует каждую станцию к вашим конкретным вкусам.
С помощью приложения Pandora вы можете ввести определенного исполнителя, песню или жанр, и Pandora будет транслировать музыку на ваше устройство Android в соответствии с вашими заданными вкусами. Эти похожие песни определены с использованием сложного алгоритма, основанного на проекте Music Genome, но я могу засвидетельствовать, что Pandora работает хорошо.
Когда дело доходит до потокового аудио, вы не можете пропустить Пандору. Ты просто не можешь. Тем не менее, в настоящее время он недоступен за пределами Соединенных Штатов.
AudioGalaxy
Проще говоря, AudioGalaxy позволяет вам передавать музыку с вашего ПК на ваш Android. Все, что вам нужно сделать, это установить AudioGalaxy на ваш компьютер, чтобы он мог каталогизировать ваши песни и передавать их, а затем установить приложение AudioGalaxy на ваш Android, чтобы оно могло принимать поток. Предостережение, конечно, в том, что ваш компьютер должен быть включен, чтобы это работало.
AudioGalaxy решает одну из проблем с синхронизацией вашей музыкальной библиотеки — она требует места на вашем мобильном устройстве. Конечно, ваш компьютер может обрабатывать гигабайты музыки благодаря терабайтным жестким дискам, но телефонов еще нет. Поэтому вместо того, чтобы загружать всю свою музыку на телефон, вы просто сохраняете ее на своем ПК и транслируете ее.
Еще одним преимуществом является то, что вы можете использовать AudioGalaxy на вашем Android в качестве пульта для AudioGalaxy на вашем ПК — так что вы можете воспроизводить музыку с ваших динамиков, но управлять ею с помощью телефона.
дозвуковой
Как и AudioGalaxy, Subsonic — это инструмент, который вы устанавливаете на свой ПК и который позволяет вам передавать аудио на ваше устройство Android. Несколько отличий включают возможность конвертировать музыку на лету, потоковые подкасты и просматривать / управлять своей музыкальной коллекцией с помощью браузера.
Одна из услуг, которую предлагает Subsonic, — это хостинг на сервере, где вы можете хранить всю свою музыку на сервере, чтобы иметь к ней круглосуточный доступ — вместо того, чтобы постоянно держать компьютер включенным. Услуга хостинга стоит денег, но если вас это не волнует, вы можете полностью ее проигнорировать.
Subsonic также включает в себя несколько расширенных функций, таких как адаптивный битрейт, эквалайзер звука и визуализатор.
SoundWire
SoundWire — это еще одна программа, которая позволяет отправлять аудио с ПК на Android. С его помощью вы можете транслировать аудиосигналы на своем ПК с помощью устройства Android независимо от того, где вы находитесь, что отлично подходит для прослушивания музыки или фильмов на расстоянии. Он также отлично подходит для просмотра большого экрана, когда громкость звучит прямо у ваших ушей.
Но отличительной особенностью SoundWire является то, что он не только воспроизводит потоковые музыкальные файлы , но и представляет собой реальный аудиопоток с вашего ПК. Это означает, что вы можете использовать любую аудиопрограмму — iTunes, Winamp, Grooveshark, YouTube — и звук будет передаваться.
SoundWire имеет высококачественный звук с низкой задержкой. Он сжимает аудиопередачу без потери этого качества, что уменьшает нагрузку на вашу пропускную способность.
Amazon MP3
Одним из величайших достижений Amazon является Amazon Cloud, огромная сеть компьютеров, которые хранят данные объемом в петабайты для миллионов пользователей. У Amazon есть сервис Cloud Player, который позволяет пользователям загружать свою музыку в облако и передавать ее из любого места. Приложение Amazon MP3 позволяет вам транслировать на ваш Android.
Когда вы используете Amazon Cloud Player, вы можете просматривать их MP3-магазин, который содержит более 20 миллионов песен в формате MP3. Когда вы покупаете песню, вы можете сохранить ее непосредственно в облаке, и она будет готова к немедленной трансляции.
Сервис Cloud Player бесплатен для 250 загруженных песен, хотя вы можете увеличить этот лимит до 250 000, обновив Cloud Player Premium. Приложение Amazon MP3 включает в себя Amazon Cloud Player и Amazon MP3 Store.
Вывод
Потоковая передача — это путь в будущее, тем более что скорость и качество Интернета продолжают расти. Поэтому лучше принять это рано и извлечь из этого пользу сейчас.
Вы использовали какое-либо из этих приложений раньше? Поделитесь своим опытом с нами в комментариях. Если вам известны другие потоковые приложения, которые заслуживают упоминания, поделитесь ими.
Источник