我正在运行nodejs服务器来建立视频注释工具。但是问题是我无法运行快进和快退功能。这是我的node-js server.js文件:
视频文件位于html中,而不位于server.js中
var http = require('http');
var fs = require('fs');
var path = require('path');
http.createServer(function (request, response) {
console.log('request starting...');
var filePath = '.' + request.url;
if (filePath == './')
filePath = './dragnew_popup.html';
var extname = path.extname(filePath);
var contentType = 'text/html';
switch (extname) {
case '.js':
contentType = 'text/javascript';
break;
case '.css':
contentType = 'text/css';
break;
case '.json':
contentType = 'application/json';
break;
case '.png':
contentType = 'image/png';
break;
case '.mp4':
contentType = 'video/mp4';
break;
}
fs.readFile(filePath, function(error, content) {
if (error) {
if(error.code == 'ENOENT'){
fs.readFile('./404.html', function(error, content) {
response.writeHead(200, { 'Content-Type': contentType });
response.end(content, 'utf-8');
});
}
else {
response.writeHead(500);
response.end('Sorry, check with the site admin for error: '+error.code+' ..\n');
response.end();
}
}
else {
response.writeHead(200, { 'Content-Type': contentType });
response.end(content, 'utf-8');
}
});
}).listen(8080);
console.log('Server running at http://127.0.0.1:8080/');
当我运行此server.js时,我无法使用快进和快退,但只能播放和暂停。
那么我要在哪里进行更改,以便可以使用快进和快退?
答案 0 :(得分:0)
这是因为服务器需要支持范围请求,以便浏览器可以从所需位置开始获取内容。
您可以从此mdn文档Range requests开始,以正确处理范围标头,并使用正确的标头和状态代码响应请求。
我找到了一个页面video streaming with nodejs,可以帮助您从头开始构建简单的服务器。
但是,如果您不需要太多开销,那么经过测试的有关静态文件服务器的npm模块可能会更健壮。
答案 1 :(得分:0)
我又创建了一个用于视频的node.js服务器,并将其保留在3000端口中。还有一台服务器来运行我的.html文件。在此html文件中,我保留了http:// ip-address:8080 / video>。
因此,每当我请求html运行视频时,它将向视频服务器发送播放请求,并且每当我请求快进和快退时,它将向视频服务器发送请求,而html服务器将获得相同的答复。
这就是我想要的。
感谢大家给我宝贵的时间。