- PVSM.RU - https://www.pvsm.ru -

Тестирование аудио-конференций с помощью онлайн-радио Pandora

Тестирование аудио-конференций с помощью онлайн-радио Pandora - 1Недавно мы запустили новый функционал на нашей платформе VoxImplant, который позволяет делать HD-аудио конференции [1], а также проигрывать mp3 и ogg файлы в звонки из SDK или SIP в wideband (раньше все было в 8КГц, теперь можно все 48КГц). Концептуально нужно было проигрывать аудио через платформу в конференцию и слушать как все это работает в зависимости от количества участников. Нам хотелось придумать интересный способ потестировать все это хозяйство и, немного поразмыслив, мы нашли достаточно нестандартный вариант — использовать онлайн-радио. Надеюсь, что вас это хоть немного заинтриговало, поэтому добро пожаловать под кат.

Pandora и API

Для тех, кто не в курсе, Pandora.com — американское онлайн-радио, доступное для прослушивания только в США. Конечно, нахождение в США проверяется по IP, поэтому не слишком сложно зарегистрироваться, воспользовавшись каким-нибудь TunnelBear. В сервисе ты выбираешь себе станции по вкусу по имени исполнителя, а оно потом создает плейлист, исходя из своих умных алгоритмов. В общем, концепция сложилась следующая — подключаемся к радио, оно выдает нам mp3, мы их проигрываем в конференцию VoxImplant, и все участники конференции слушают музыку. К счастью, у Pandora еще и API обнаружилось, хоть и неофициальное, но вполне рабочее https://6xq.net/pandora-apidoc/json/ [2]

Интеграция с VoxImplant

Подключаться к API можно прямо из сценария VoxImplant, напомню, что пишутся они на JavaScript и выполняются нашим движком, оттуда легко можно делать http запросы ко внешним веб-сервисам. Наши сервера есть по всему миру, поэтому для тестирования мы использовали те, которые находятся в США, чтобы Pandora не ругалась.
В итоге получился какой-то такой сценарий https://gist.github.com/aylarov/ee7f509ca182e8437b2abed9d415f2f1 [3], в нем можно заметить использование Promise и blowfish.encrypt, этот функционал подключается с помощью дополнительных JS-файлов — es6-promise [4] и blowfish.js [5] в Rule приложения перед основным сценарием. Основной сценарий проигрывает mp3-файлы, URL которых выдает API Pandora, в конференцию. На уровне платформы mp3 превращается в real-time поток в кодеке Opus (48КГц), пока правда в моно, так как со стерео в WebRTC есть ряд нюансов, связанных с эхоподавлением, да и в случае аудио-конференции стерео не очень работает.

Клиент для тестирования

С помощью Web SDK VoxImplant накидали приложение, которое подключается и делает звонок в конференцию, и даже есть возможность переключать треки и радио-станции. Ну а дальше сидим и слушаем музыку :)

Ну и на закуску — послушать Pandora через VoxImplant можно тут [6].

P.S. Конечно, это не единственный способ, который мы использовали для тестирования конференций, обычные звонки где люди общались тоже никто не отменял.

Автор: Voximplant

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka/117564

Ссылки в тексте:

[1] HD-аудио конференции: https://habrahabr.ru/company/Voximplant/blog/279313/

[2] https://6xq.net/pandora-apidoc/json/: https://6xq.net/pandora-apidoc/json/

[3] https://gist.github.com/aylarov/ee7f509ca182e8437b2abed9d415f2f1: https://gist.github.com/aylarov/ee7f509ca182e8437b2abed9d415f2f1

[4] es6-promise: https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.js

[5] blowfish.js: https://gist.github.com/aylarov/08eff1bfccb7e0e87a2fef0df766f01c

[6] тут: http://demos.voximplant.com/pandora/

[7] Источник: https://habrahabr.ru/post/281276/