Я использую тег html5 для воспроизведения mp3. Я использую узел для отправки HTML как таковой:Обслуживание html5 через nodejs
var http = require('http')
var fs = require('fs')
var html = fs.readFileSync(__dirname + '/some.html')
http.createServer(function(req,res){
res.writeHead(200, {"Content-Type" : "text/html"})
res.write(html)
res.end()
}).listen(1337)
console.log('Server is listening on 1337')
some.html тег выглядит следующим образом:
<!DOCTYPE html>
<html>
<body>
<audio id="player" src="/Users/alex/yodog/DTSE9.mp3" controls>
</audio>
</body>
</html>
Я думаю, что не хватает чего-то большого здесь, потому что, когда я открываю тот же HTML-файл в браузере все работает так, как ожидалось. Однако, когда я использую узел для доставки html, ничего не играет. Небольшое управление аудио не показывает длину звуковой дорожки, и нажатие на воспроизведение ничего не делает.
Я думаю, что эта часть более крупной проблемы в отношении реализации html5. Мой сервер должен делать «что-то», чтобы html5 работал так, как ожидалось. Я пробовал поиск в Интернете, и единственное, что похоже на это, - это API веб-аудио. Или, может быть, мне нужно указать что-то в заголовках ответов? Очевидно, я очень смущен здесь, и любые указатели будут оценены.
Когда вы открываете файл, тогда 'file: /// Users/alex/yodog/DTSE9.mp3' является абсолютным путем в вашей файловой системе, и mp3 там находится. После того, как он на сервере, браузер пытается получить http: // localhost: 1337/Users/alex/yodog/DTSE9.mp3', которого, вероятно, не существует. Вы должны увидеть ошибку 404 на вкладке «Инструменты разработчика». – pawel
Хорошо, что имеет смысл. Я исследовал инструменты разработчика, и браузер действительно делает еще один запрос на mp3. Однако, учитывая мою базовую реализацию сервера, он получает 200 OK. Этого следует ожидать. Я собираюсь попробовать изменить мой сервер, а затем предоставить обновление –