как тег html5 <audio> реагирует на веб-серверы

Привет,
Я разработал простой веб-сервер на основе проекта C++ с открытым исходным кодом.
На этом веб-сервере есть много файлов wave, которые я хотел бы показать веб-клиентам с помощью тега HTML 5.

Я добавил wave-файлы, такие как следующий пример в html-файлах, которые отправляются в веб-браузеры.

<audio controls>
<source src = "sound.wav" type="audio/wave">
</audio>        

Но теперь я хотел бы знать, как веб-серверы обрабатывают тег и отправляют потоковые данные веб-клиентам, когда веб-клиенты нажимают кнопку воспроизведения.

Мне нужно реализовать его с нуля на моем веб-сервере.

Я читал много постов, но большинство из них просто обрабатывают проблемы на стороне клиента.

Мне нужно глубоко знать, как обрабатывается серверная часть запроса.

с уважением

2 ответа

  1. Как вы можете видеть в MDN doc https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio

    Элемент HTML используется для встраивания звукового содержимого в документы.
    Он может содержать один или несколько источников звука, представленных с помощью src
    атрибут или элемент; браузер выберет наиболее
    подходящий.

    Поток не отправляется веб-клиентам, когда веб-клиенты нажимают кнопку воспроизведения, но отправляется, когда страница загружена (lile все средства массовой информации на веб-странице)
    вы можете управлять выполнением с помощью некоторых атрибутов, таких как :

    автозапуск

    Логический атрибут; если указан (даже если значение «false»!),
    звук автоматически начнет воспроизведение, как только он сможет это сделать, не дожидаясь завершения загрузки всего аудиофайла.

    буферизованный

    Атрибут, который можно прочитать, чтобы определить, какие временные диапазоны носителя были буферизованы.
    Этот атрибут содержит объект TimeRanges.

    предварительный натяг

    Этот перечисленный атрибут предназначен для предоставления браузеру подсказки о том, что, по мнению автора, приведет к лучшему взаимодействию с пользователем. Он может иметь одно из следующих значений:
    none: указывает, что аудио не должно быть предварительно загружено;
    метаданные: указывает, что извлекаются только метаданные аудио (например, длина) ;
    auto: указывает, что весь аудиофайл может быть загружен, даже если пользователь не должен его использовать;
    пустая строка: синоним значения auto.

  2. Держу пари, что вы уже знаете, как подавать файл. Для обслуживания потоковой передачи аудио существуют протоколы потоковой передачи. Один ShoutCast и здесь у вас есть хороший пример в Python.

    https://github.com/inforichland/PyCast