Не нарушен ли аудио элемент HTML 5 во всех браузерах, кроме Firefox? - PullRequest
0 голосов
/ 27 февраля 2019

Использование Google Chrome (V72.0.3626.119) Я обнаружил, что элемент <audio> просто не работает должным образом.

У меня есть простой сервер Node.js:

const http = require('http')
const fs = require('fs')
http.createServer((req, res) => {
  res.statusCode = 200
  res.setHeader('Content-Type', 'audio/ogg')
  res.end(fs.readFileSync('./test.ogg', {encoding: null}))
}).listen(9000)

Я обнаружил, что при использовании Chrome, если я перехожу к localhost:9000, звук начинает воспроизводиться автоматически.Но поиск полностью прерван.

Если я захожу на localhost:9000 в Firefox, то звук показывает / ведет себя как ожидалось.

Если я захожу на localhost:9000 в сафари, аудио просто загружается (UGH)

Если я перехожу на localhost:9000 в Opera, звук работает так же, как в Chrome

Я что-то не так делаю на сервере Node.js?

Я обнаружил, что управление потоком от сервера к клиенту работает (за исключением использования Safari), используя этот код: https://github.com/daspinola/video-stream-sample/blob/master/server.js

Смежный вопрос, который я задавал ранее, находится здесь: Как отправить аудиофайлв Chrome с использованием конечной точки http-сервера Node.js?

1 Ответ

0 голосов
/ 28 февраля 2019

Я бы рекомендовал использовать res.sendFile('./test.ogg') вместо res.end(fs.readFileSync('./test.ogg')).Тогда в вашем HTML-клиенте просто сделайте <audio src="/" type="audio/ogg"/>

...