我最近开始使用 Node.JS。我想谈谈你的倒数第二行
“当我连接网络服务器时,如何在网络浏览器上播放视频?”
到目前为止,我已经找到了两种使用 nodejs 服务器在客户端浏览器上呈现视频/音频的方法。我将分享两种方式的代码。
一种方法是在客户端的浏览器上加载 HTML 页面(index.html,其中已经使用标签嵌入了视频),并准备好播放视频播放器。第二种方法是直接将视频作为服务器的响应发送到您的网络浏览器。后一种方法可能需要也可能不需要 HTML,这取决于您真正想要如何实现这一点。
我不想使用像 1233 这样的小端口号,而是想公平对待网络,假设我们要使用 8383 端口号。
方法 1:渲染一个已经嵌入视频播放器的 HTML 页面。我正在考虑您的 webserver.js 和 index.html 文件位于同一目录中。这是可以满足您要求的东西-
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/'));
var ipAddress = process.env.OPENSHIFT_NODEJS_IP;
var port = process.env.OPENSHIFT_NODEJS_PORT || 8383;
app.listen(port, ipAddress);
运行 webserver.js 并在浏览器上输入http://localhost:8383/index.html !
方法 2 - 如果您想使用 require('http") 来实现它,请使用以下代码 -
var http = require('http');
fileSystem = require('fs'),
path = require('path');
util = require('util');
http.createServer(function (req, response) {
var filePath = path.join('./', 'b.mp4');
var stat = fileSystem.statSync(filePath);
response.writeHead(200, {
"Content-Type": "video/mpeg",
"content-size": stat.size
});
var readStream = fileSystem.createReadStream(filePath);
readStream.on('data', function (data) {
var flushed = response.write(data);
// Pause the read stream when the write stream gets saturated
if (!flushed)
readStream.pause();
});
response.on('drain', function () {
// Resume the read stream when the write stream gets hungry
readStream.resume();
});
readStream.on('end', function () {
response.end();
});
}).listen(8383);
运行 webserver.js 后,输入http://localhost:8383/。