Node.js и HTML5 Audio - PullRequest
       0

Node.js и HTML5 Audio

2 голосов
/ 11 марта 2011

Я пытаюсь заставить мой сервер node.js создавать аудиофайлы для аудио-тега HTML5.В настоящее время я обращаюсь к аудиофайлам через express staticProvider, но это позволит воспроизводить звук один раз, а затем никогда.

Из того, что я смог собрать, чтобы звук работал правильнопри поиске или зацикливании мне нужно предоставить заголовок «Content-Range», когда запрашивается мой аудиофайл.Я очень сомневаюсь, что экспресс-staticProvider делает это для меня, так что может показаться, что мне нужно обработать файл с помощью пользовательского кода.К сожалению, я довольно новичок в node.js, и такие вещи, как обслуживание файлов, все еще немного за мной.Может кто-нибудь предложить какой-нибудь совет, как я могу предоставить соответствующие метаданные для своих аудиофайлов?

[РЕДАКТИРОВАТЬ] (Удален старый код сервера, поскольку он никому не поможет!)

Извините, я обычно не задаю такие широкие вопросы, но я действительно не знаю, с чего начать.Любые предложения?

[РЕШЕНИЕ]

Таким образом, похоже, что решение заключается в использовании только обновленного программного обеспечения.Я пробовал Express, а не встроенное промежуточное ПО HTTP для подключения, потому что думал, что Connect не выполняет правильную обработку статических файлов.Оказывается, я просто смотрел документацию для более новой версии Connect, в то время как версия, которая поставляется с узлом, немного старше.После того, как я обновил свою библиотеку подключений (я просто использовал npm для установки последней версии, для любопытных), следующее прекрасно работало:

var connect = require('connect');
var server = connect.createServer(
    // If your server errors on this line, saying it doesn't know what 
    // "static" is you need to get the latest connect!
    connect.static(__dirname + '/public')
);
server.listen(PORT);

1 Ответ

2 голосов
/ 11 марта 2011

Статическая логика обслуживания выполняется базовым сервером соединений (с использованием его статического промежуточного программного обеспечения). Существует код для заголовков «Content-Range» (см. здесь , около строки 148), но эти заголовки устанавливаются только тогда, когда базовый клиент (в вашем случае реализация HTML5 браузера) отправляет правильные заголовки запроса .

Может быть этот пост из групп Google может помочь вам. Тема немного другая (потоковое видео), но я думаю, что суть проблемы примерно та же.

...