Как передать медиафайл с сервера на клиентскую сторону, например, аудиофайл mp3 в моем случае в loopback 4 nodejs?

У меня есть loopback 4 — nodejs в бэкэнде и Ionic 4 во внешнем интерфейсе моего мобильного приложения. Я храню mp3-файл на sid-сервере, и я хочу транслировать и воспроизводить его на стороне клиента, поэтому в основном потоковая передача звука из loopback4. Итак, в основном я ищу код на стороне сервера в loopback-4, который находится в машинописном тексте для аудиопотока файла клиенту. (Я не могу использовать библиотеки npmjs, так как большинство из них не типизированы и не могут использоваться в машинописи)


person Abrar Momin    schedule 11.07.2020    source источник


Ответы (2)


Как только я узнаю о loopback4, у него нет реализации потока nodejs. Я рекомендую вам использовать нативные потоки NodeJS. Ознакомьтесь с этим репозиторием https://github.com/noamtcohen/AudioStreamer.

person Husniddin Qurbonboyev    schedule 16.07.2020

Короткий ответ: я смог добиться этого, просто отдав статические файлы, т. е. мой аудиофайл, со стороны сервера. Доступ к нему с помощью конечной точки, которую я сделал, и вызов ее с помощью тега на внешнем интерфейсе.

Длинный ответ:

  1. В loopback 4 вы можете найти строку кода в файле application.ts, где обслуживается public каталог из корневой папки серверного проекта.

    this.static('/', path.join(__dirname, '../../public'));

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

this.static('/', path.join(__dirname, '../media'));
  1. Второй шаг — предоставить конечную точку API, которую вы будете использовать для отправки запроса на сервер. Вы можете сделать это внутри файла index.ts серверного проекта и кода прямо под app.start().

app.static('/media', 'media', { extensions: ['mp3'] });

Здесь добавление конечной точки API и каталога в корневую папку проекта узла является обязательным.

  1. Теперь во внешнем интерфейсе вам нужно только добавить полный URL-адрес для доступа к статическому файлу из проекта узла в атрибут src тега html. Добавьте к тегу атрибут controls, и html сделает все за вас. Вы можете воспроизводить, приостанавливать, пропускать и т. д.

    ‹управление звуком #audioElement id=id1 [src]=http://localhost:3000/media/audio-files/myAudiofile.mp3›

person Abrar Momin    schedule 19.07.2020