เช เชเซเชฏเซเชเซเชฐเซเชฏเชฒเชฎเชพเช เชเชชเชฃเซ Node.js เช
เชจเซ เชตเซเชฌ เชธเซเชชเซเช API เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชตเซเชเชธ เชเชเชเซเชฐเซเชฒ เชธเชพเชฅเซ เชกเซเชฐเซเชจ เชฎเชพเชเซ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชฌเชจเชพเชตเชตเชพเชจเซเช เชเซเชเชถเซเช. เชเซเชชเซเชเชฐ - เชชเซเชชเช เชเชเชฐเชกเซเชฐเซเชจ 2.0.
เช เชฎเซ เชฏเชพเชฆ เชเชฐเชพเชตเซเช เชเซเช: Habrเชจเชพ เชคเชฎเชพเชฎ เชตเชพเชเชเซ เชฎเชพเชเซ - Habr เชชเซเชฐเซเชฎเซ เชเซเชกเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซเชเชชเชฃ เชธเซเชเชฟเชฒเชฌเซเชเซเชธ เชเซเชฐเซเชธเชฎเชพเช เชจเซเชเชงเชฃเซ เชเชฐเชคเซ เชตเชเชคเซ 10 เชฐเซเชฌเชฒ เชกเชฟเชธเซเชเชพเชเชจเซเช.
เชธเซเชเชฟเชฒเชฌเซเชเซเชธ เชญเชฒเชพเชฎเชฃ เชเชฐเซ เชเซ: เชชเซเชฐเซเชเซเชเชฟเชเชฒ เชเซเชฐเซเชธ
"เชฎเซเชฌเชพเชเชฒ เชกเซเชตเชฒเชชเชฐ เชชเซเชฐเซ" .
เชชเชฐเชฟเชเชฏ
เชกเซเชฐเซเชจ เช เชฆเซเชญเซเชค เชเซ. เชฎเชจเซ เชเชฐเซเชเชฐ เชฎเชพเชฐเชพ เชเซเชตเซเชก เชธเชพเชฅเซ เชฐเชฎเชตเชพเชฎเชพเช, เชซเซเชเชพ เช เชจเซ เชตเชฟเชกเชฟเชฏเซ เชฒเซเชตเชพเชจเซ เช เชฅเชตเชพ เชซเชเซเชค เชเชจเชเชฆ เชฎเชพเชฃเชตเชพเชจเซ เชเชจเชเชฆ เชเชตเซ เชเซ. เชชเชฐเชเชคเซ เชฎเชพเชจเชตเชฐเชนเชฟเชค เชนเชตเชพเช เชตเชพเชนเชจเซ (เชฏเซเชเชตเซ) เชจเซ เชเชชเชฏเซเช เชฎเชพเชคเซเชฐ เชฎเชจเซเชฐเชเชเชจ เชเชฐเชคเชพเช เชตเชงเซ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชคเซเช เชธเชฟเชจเซเชฎเชพเชฎเชพเช เชเชพเชฎ เชเชฐเซ เชเซ, เชเซเชฒเซเชถเชฟเชฏเชฐเซเชธเชจเซ เช เชญเซเชฏเชพเชธ เชเชฐเซ เชเซ เช เชจเซ เชธเซเชจเซเชฏ เช เชจเซ เชเซเชทเชฟ เชเซเชทเซเชคเซเชฐเชจเชพ เชชเซเชฐเชคเชฟเชจเชฟเชงเชฟเช เชฆเซเชตเชพเชฐเชพ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชฏ เชเซ.
เช เชเซเชฏเซเชเซเชฐเซเชฏเชฒเชฎเชพเช เชเชชเชฃเซ เชเช เชชเซเชฐเซเชเซเชฐเชพเชฎ เชฌเชจเชพเชตเชตเชพเชจเซเช เชเซเชเชถเซเช เชเซ เชคเชฎเชจเซ เชกเซเชฐเซเชจเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชถเซ. เชตเซเชเชธ เชเชฆเซเชถเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ. เชนเชพ, เชคเชฎเซ เชคเซเชจเซ เชเซ เชเชฐเชตเชพเชจเซเช เชเชนเซ เชเซ เชคเซ เชเซเชชเซเชเชฐ เชเชฐเชถเซ. เชฒเซเชเชจเชพ เช เชเชคเซ เชฏเซเชเชตเซ เชจเชฟเชฏเชเชคเซเชฐเชฃเชจเซ เชคเซเชฏเชพเชฐ เชชเซเชฐเซเชเซเชฐเชพเชฎ เช เชจเซ เชตเชฟเชกเชฟเช เชเซ.
เชเชฏเชฐเซเชจ
เช เชฎเชจเซ เชจเซเชเซเชจเชพเชจเซ เชเชฐเซเชฐ เชเซ:
- เชชเซเชชเช เชเชเชฐเชกเซเชฐเซเชจ 2.0;
- เชเชฅเชฐเชจเซเช เชเซเชฌเชฒ;
- เชธเชพเชฐเซ เชฎเชพเชเชเซเชฐเซเชซเซเชจ.
เชตเชฟเชจเซเชกเซเช/เชฎเซเช/เชเชฌเซเชจเซเชเซ เชธเชพเชฅเซ เชตเชฐเซเชเชธเซเชเซเชถเชจเซ เชชเชฐ เชตเชฟเชเชพเชธ เช เชจเซ เชธเชเชเชพเชฒเชจ เชนเชพเชฅ เชงเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เช เชเชเชค เชฐเซเชคเซ, เชฎเซเช Mac เช เชจเซ Ubuntu 18.04 เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซเชฏเซเช.
เชธเซเชซเซเชเชตเซเชฐ
Node.js เชจเซเช เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃ เช
เชนเซเชเชฅเซ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ
เชชเชฃ เชเชฐเซเชฐเซ เชเซ
เชเซเชชเซเชเชฐ เชธเชฎเชเชตเซเช
เชเชพเชฒเซ เชธเชฎเชเชตเชพเชจเซ เชชเซเชฐเชฏเชคเซเชจ เชเชฐเซเช เชเซ เชชเซเชชเช เชเชเชฐเชกเซเชฐเซเชจ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ. เช เชเซเชชเซเชเชฐเชฎเชพเช เชเชพเชฐ เชฎเซเชเชฐ เชเซ.
เชตเชฟเชฐเซเชงเซ เชฎเซเชเชฐเซ เช เช เชฆเชฟเชถเชพเชฎเชพเช เชเชพเชฎ เชเชฐเซ เชเซ. เชเช เชเซเชกเซ เชเชกเชฟเชฏเชพเชณเชจเซ เชฆเชฟเชถเชพเชฎเชพเช เชซเชฐเซ เชเซ, เชฌเซเชเซ เชเชกเชฟเชฏเชพเชณเชจเซ เชฆเชฟเชถเชพเชฎเชพเช. เชกเซเชฐเซเชจ เชชเซเชฅเซเชตเซเชจเซ เชธเชชเชพเชเซเชจเซ เชธเชพเชชเซเชเซเชท เชเซเชเชจเชพ เชเซเชฃเชจเซ เชฌเชฆเชฒเซเชจเซ, เชฎเซเชเชฐเซเชธเชจเชพ เชชเชฐเชฟเชญเซเชฐเชฎเชฃเชจเซ เชเชคเชฟเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเซเชจเซ เช
เชจเซ เช
เชจเซเชฏ เชเชฃเซ เชเชพเชฒเชพเชเซ เชเชฐเซ เชถเชเชพเชฏ เชคเซเชตเซ เชนเชฟเชฒเชเชพเชฒ เชเชฐเซเชจเซ เชเชเชณ เชตเชงเซ เชเซ.
เชเซเชฎ เชเชชเชฃเซ เชเชชเชฐเชจเชพ เชเชฟเชคเซเชฐเชฎเชพเช เชเซเช เชถเชเซเช เชเซเช, เชตเชฟเชตเชฟเชง เชชเชฐเชฟเชฎเชพเชฃเซ เชฌเชฆเชฒเชตเชพเชฅเซ เชเซเชชเซเชเชฐเชจเซ เชนเชฟเชฒเชเชพเชฒเชจเซ เชฆเชฟเชถเชพเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชฅเชพเชฏ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชกเชพเชฌเชพ เช
เชจเซ เชเชฎเชฃเชพ เชฐเซเชเชฐเซเชธเชจเซ เชชเชฐเชฟเชญเซเชฐเชฎเชฃ เชเชคเชฟเชฎเชพเช เชเชเชพเชกเซ เช
เชฅเชตเชพ เชตเชงเชพเชฐเซ เช เชฐเซเชฒ เชฌเชจเชพเชตเซ เชเซ. เชเชจเชพเชฅเซ เชกเซเชฐเซเชจ เชเชเชณ เชเซ เชชเชพเชเชณ เชเชกเซ เชถเชเซ เชเซ.
เชฎเซเชเชฐเซเชธเชจเซ เชเชคเชฟ เช เชจเซ เชฆเชฟเชถเชพ เชฌเชฆเชฒเซเชจเซ, เช เชฎเซ เชเชฟเชฒเซเช เชเชเชเชฒ เชธเซเช เชเชฐเซเช เชเซเช เชเซ เชเซเชชเซเชเชฐเชจเซ เช เชจเซเชฏ เชฆเชฟเชถเชพเชฎเชพเช เชเชธเซเชกเชตเชพ เชฆเซ เชเซ. เชตเชพเชธเซเชคเชตเชฎเชพเช, เชตเชฐเซเชคเชฎเชพเชจ เชชเซเชฐเซเชเซเชเซเช เชฎเชพเชเซ เชเชฐเซเชกเชพเชฏเชจเซเชฎเชฟเชเซเชธเชจเซ เช เชญเซเชฏเชพเชธ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เชคเชฎเชพเชฐเซ เชซเชเซเชค เชฎเซเชณเชญเซเชค เชธเชฟเชฆเซเชงเชพเชเชคเซเชจเซ เชธเชฎเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เชชเซเชชเช เชเชเชฐเชกเซเชฐเซเชจ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฎ เชเชฐเซ เชเซ
เชกเซเชฐเซเชจ เชเช Wi-Fi เชนเซเชเชธเซเชชเซเช เชเซ. เชเซเชชเซเชเชฐเชจเซ เชเชฆเซเชถเซ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพ เช เชจเซ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เช เชฌเชฟเชเชฆเซเชฅเซ เชเชจเซเชเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชคเซเชฏเชพเช เชเชฃเซ เชตเชฟเชตเชฟเชง เชเชชเซเชฒเชฟเชเซเชถเชจเซ เชเซ เชเซ เชคเชฎเชจเซ เชเซเชตเชพเชกเชเซเชชเซเชเชฐเซเชธเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชคเซ เชฌเชงเซเช เชเชจเชพ เชเซเชตเซเช เชฒเชพเชเซ เชเซ:
เชกเซเชฐเซเชจ เชเชจเซเชเซเช เชฅเชคเชพเช เช เชเชฐเซเชฎเชฟเชจเชฒ เช
เชจเซ เชเซเชฒเชจเซเช 192.168.1.1 เชเซเชฒเซ - เช เชเซเชชเซเชเชฐเชจเซ IP เชเซ. Linux เชฎเชพเชเซ เชคเชฎเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ
เชเชชเซเชฒเชฟเชเซเชถเชจ เชเชฐเซเชเชฟเชเซเชเซเชเชฐ
เช เชฎเชพเชฐเชพ เชเซเชกเชจเซ เชจเซเชเซเชจเชพ เชฎเซเชกเซเชฏเซเชฒเชฎเชพเช เชตเชฟเชญเชพเชเชฟเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ:
- เชตเซเชเชธ เชกเชฟเชเซเชเซเชถเชจ เชฎเชพเชเซ เชธเซเชชเซเช API เชธเชพเชฅเซ เชฏเซเชเชฐ เชเชจเซเชเชฐเชซเซเชธ;
- เชซเชฟเชฒเซเชเชฐเชฟเชเช เชเชฆเซเชถเซ เช เชจเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชธเชพเชฅเซ เชธเชฐเชเชพเชฎเชฃเซ;
- เชกเซเชฐเซเชจเชจเซ เชเชฆเซเชถเซ เชฎเซเชเชฒเชตเชพ;
- เชเซเชตเชเชค เชตเชฟเชกเชฟเชฏเซ เชชเซเชฐเชธเชพเชฐเชฃ.
เชเซเชฏเชพเช เชธเซเชงเซ เชเชจเซเชเชฐเชจเซเช เชเชจเซเชเซเชถเชจ เชนเซเชฏ เชคเซเชฏเชพเช เชธเซเชงเซ API เชเชพเชฎ เชเชฐเซ เชเซ. เชเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชเชฅเชฐเชจเซเช เชเชจเซเชเซเชถเชจ เชเชฎเซเชฐเซเช เชเซเช.
เชเชชเซเชฒเชฟเชเซเชถเชจ เชฌเชจเชพเชตเชตเชพเชจเซ เชธเชฎเชฏ เชเซ!
เชเซเชก
เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชเช เชจเชตเซเช เชซเซเชฒเซเชกเชฐ เชฌเชจเชพเชตเซเช เช เชจเซ เชเชฐเซเชฎเชฟเชจเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชจเชพ เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซเช.
เชชเชเซ เชเชชเชฃเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชจเซเชก เชชเซเชฐเซเชเซเชเซเช เชฌเชจเชพเชตเซเช เชเซเช.
เชชเซเชฐเชฅเชฎ, เช เชฎเซ เชเชฐเซเชฐเซ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชธเซเชฅเชพเชชเชฟเชค เชเชฐเซเช เชเซเช.
npm เชธเซเชฅเชพเชชเชฟเชค เชเชฐเซโ
เช เชฎเซ เชจเซเชเซเชจเชพ เชเชฆเซเชถเซเชจเซ เชธเชฎเชฐเซเชฅเชจ เชเชชเซเชถเซเช:
- เชเซเชเชเชซ
- เชเชคเชฐเชพเชฃ
- เชเชชเชฐ - เชกเซเชฐเซเชจ เช เชกเชงเซ เชฎเซเชเชฐ เชตเชงเซ เชเซ เช เชจเซ เชซเชฐเซ เชเซ;
- เชจเซเชเซ - เช เชกเชงเชพ เชฎเซเชเชฐ เชจเซเชเซ เชชเชกเซ เชเซ เช เชจเซ เชฅเซเชเซ เชเชพเชฏ เชเซ;
- เชกเชพเชฌเซ เชคเชฐเชซ - เช เชกเชงเซ เชฎเซเชเชฐ เชกเชพเชฌเซ เชคเชฐเชซ เชเชพเชฏ เชเซ;
- เชเชฎเชฃเซ เชคเชฐเชซ - เชเชฎเชฃเซ เชคเชฐเชซ เช เชกเชงเซ เชฎเซเชเชฐ เชเชพเชฏ เชเซ;
- เชชเชฐเชฟเชญเซเชฐเชฎเชฃ - เชเชกเชฟเชฏเชพเชณเชจเซ เชฆเชฟเชถเชพเชฎเชพเช 90 เชกเชฟเชเซเชฐเซ เชซเซเชฐเชตเซ เชเซ;
- เชเชเชณ - เช เชกเชงเชพ เชฎเซเชเชฐ เชเชเชณ เชเชพเชฏ เชเซ;
- เชชเชพเชเชณ - เช เชกเชงเชพ เชฎเซเชเชฐ เชชเชพเชเชณ เชเชพเชฏ เชเซ;
- เชฌเชเชง.
เช เชนเซเช เชเช เชเซเชก เชเซ เชเซ เชคเชฎเชจเซ เชเชฆเซเชถเซ เชธเซเชตเซเชเชพเชฐเชตเชพ, เชคเซเชฎเชจเซ เชซเชฟเชฒเซเชเชฐ เชเชฐเชตเชพ เช เชจเซ เชกเซเชฐเซเชจเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ.
const express = require('express');
const bodyparser = require('body-parser');
var arDrone = require('ar-drone');
const router = express.Router();
const app = express();
const commands = ['takeoff', 'land','up','down','goleft','goright','turn','goforward','gobackward','stop'];
var drone = arDrone.createClient();
// disable emergency
drone.disableEmergency();
// express
app.use(bodyparser.json());
app.use(express.static(__dirname + '/public'));
router.get('/',(req,res) => {
res.sendFile('index.html');
});
router.post('/command',(req,res) => {
console.log('command recieved ', req.body);
console.log('existing commands', commands);
let command = req.body.command.replace(/ /g,'');
if(commands.indexOf(command) !== -1) {
switch(command.toUpperCase()) {
case "TAKEOFF":
console.log('taking off the drone');
drone.takeoff();
break;
case "LAND":
console.log('landing the drone');
drone.land();
break;
case "UP":
console.log('taking the drone up half meter');
drone.up(0.2);
setTimeout(() => {
drone.stop();
clearTimeout();
},2000);
break;
case "DOWN":
console.log('taking the drone down half meter');
drone.down(0.2);
setTimeout(() => {
drone.stop();
clearTimeout();
},2000);
break;
case "GOLEFT":
console.log('taking the drone left 1 meter');
drone.left(0.1);
setTimeout(() => {
drone.stop();
clearTimeout();
},1000);
break;
case "GORIGHT":
console.log('taking the drone right 1 meter');
drone.right(0.1);
setTimeout(() => {
drone.stop();
clearTimeout();
},1000);
break;
case "TURN":
console.log('turning the drone');
drone.clockwise(0.4);
setTimeout(() => {
drone.stop();
clearTimeout();
},2000);
break;
case "GOFORWARD":
console.log('moving the drone forward by 1 meter');
drone.front(0.1);
setTimeout(() => {
drone.stop();
clearTimeout();
},2000);
break;
case "GOBACKWARD":
console.log('moving the drone backward 1 meter');
drone.back(0.1);
setTimeout(() => {
drone.stop();
clearTimeout();
},2000);
break;
case "STOP":
drone.stop();
break;
default:
break;
}
}
res.send('OK');
});
app.use('/',router);
app.listen(process.env.port || 3000);
เช เชจเซ เช เชนเซเช HTML เช เชจเซ JavaScript เชเซเชก เชเซ เชเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชธเชพเชเชญเชณเซ เชเซ เช เชจเซ เชจเซเชก เชธเชฐเซเชตเชฐเชจเซ เชเชฆเซเชถ เชฎเซเชเชฒเซ เชเซ.
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Voice Controlled Notes App</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/shoelace-css/1.0.0-beta16/shoelace.css">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="container">
<h1>Voice Controlled Drone</h1>
<p class="page-description">A tiny app that allows you to control AR drone using voice</p>
<h3 class="no-browser-support">Sorry, Your Browser Doesn't Support the Web Speech API. Try Opening This Demo In Google Chrome.</h3>
<div class="app">
<h3>Give the command</h3>
<div class="input-single">
<textarea id="note-textarea" placeholder="Create a new note by typing or using voice recognition." rows="6"></textarea>
</div>
<button id="start-record-btn" title="Start Recording">Start Recognition</button>
<button id="pause-record-btn" title="Pause Recording">Pause Recognition</button>
<p id="recording-instructions">Press the <strong>Start Recognition</strong> button and allow access.</p>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="script.js"></script>
</body>
</html>
เช เชจเซ เชตเซเชเชธ เชเชฎเชพเชจเซเชก เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชพเชตเชพเชธเซเชเซเชฐเชฟเชชเซเช เชเซเชก, เชคเซเชฎเชจเซ เชจเซเชก เชธเชฐเซเชตเชฐ เชชเชฐ เชฎเซเชเชฒเซเชจเซ.
try {
var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
var recognition = new SpeechRecognition();
}
catch(e) {
console.error(e);
$('.no-browser-support').show();
$('.app').hide();
}
// other code, please refer GitHub source
recognition.onresult = function(event) {
// event is a SpeechRecognitionEvent object.
// It holds all the lines we have captured so far.
// We only need the current one.
var current = event.resultIndex;
// Get a transcript of what was said.
var transcript = event.results[current][0].transcript;
// send it to the backend
$.ajax({
type: 'POST',
url: '/command/',
data: JSON.stringify({command: transcript}),
success: function(data) { console.log(data) },
contentType: "application/json",
dataType: 'json'
});
};
เชเชชเซเชฒเชฟเชเซเชถเชจ เชฒเซเชจเซเช เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
เชชเซเชฐเซเชเซเชฐเชพเชฎ เชจเซเชเซ เชชเซเชฐเชฎเชพเชฃเซ เชฒเซเชเช เชเชฐเซ เชถเชเชพเชฏ เชเซ (เชคเซ เชเชพเชคเชฐเซ เชเชฐเชตเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชเซ เชเซ เชเซเชชเซเชเชฐ Wi-Fi เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒ เชเซ เช เชจเซ เชเชฅเชฐเชจเซเช เชเซเชฌเชฒ เชเชฎเซเชชเซเชฏเซเชเชฐ เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒ เชเซ).
เชฌเซเชฐเชพเชเชเชฐเชฎเชพเช เชฒเซเชเชฒเชนเซเชธเซเช:3000 เชเซเชฒเซ เช เชจเซ เชธเซเชเชพเชฐเซเช เชฐเซเชเชเซเชจเชฟเชถเชจ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ.
เช
เชฎเซ เชกเซเชฐเซเชจเชจเซ เชจเชฟเชฏเชเชคเซเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช เชเซเช เช
เชจเซ เชเซเชถ เชเซเช.
เชกเซเชฐเซเชจเชฅเซ เชตเชฟเชกเชฟเชฏเซ เชฌเซเชฐเซเชกเชเชพเชธเซเช เชเชฐเซ เชฐเชนเซเชฏเซ เชเซ
เชชเซเชฐเซเชเซเชเซเชเชฎเชพเช, เชจเชตเซ เชซเชพเชเชฒ เชฌเชจเชพเชตเซ เช เชจเซ เชคเซเชฏเชพเช เช เชเซเชกเชจเซ เชจเชเชฒ เชเชฐเซ:
const http = require("http");
const drone = require("dronestream");
const server = http.createServer(function(req, res) {
require("fs").createReadStream(__dirname + "/public/video.html").pipe(res);
});
drone.listen(server);
server.listen(4000);
เช เชจเซ เช เชนเซเช HTML เชเซเชก เชเซ, เช เชฎเซ เชคเซเชจเซ เชธเชพเชฐเซเชตเชเชจเชฟเช เชซเซเชฒเซเชกเชฐเชจเซ เช เชเชฆเชฐ เชฎเซเชเซเช เชเซเช.
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Stream as module</title>
<script src="/dronestream/nodecopter-client.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<h1 id="heading">Drone video stream</h1>
<div id="droneStream" style="width: 640px; height: 360px"> </div>
<script type="text/javascript" charset="utf-8">
new NodecopterStream(document.getElementById("droneStream"));
</script>
</body>
</html>
เชเชเชณเชจเชพ เชเซเชฎเซเชฐเชพเชฎเชพเชเชฅเซ เชตเชฟเชกเชฟเชฏเซ เชเซเชตเชพ เชฎเชพเชเซ เชฒเซเชเชฒเชนเซเชธเซเช:8080 เชฒเซเชเช เชเชฐเซ เช เชจเซ เชเชจเซเชเซเช เชเชฐเซ.
เชเชชเชฏเซเชเซ เชเชฟเชชเซเชธ
- เช เชกเซเชฐเซเชจเชจเซ เชเชฐเชจเซ เช เชเชฆเชฐ เชเชกเชพเชกเซ.
- เชเซเช เชเชซ เชเชฐเชคเชพ เชชเชนเซเชฒเชพ เชนเชเชฎเซเชถเชพ เชคเชฎเชพเชฐเชพ เชกเซเชฐเซเชจ เชชเชฐ เชฐเชเซเชทเชฃเชพเชคเซเชฎเช เชเชตเชฐ เชฒเชเชพเชตเซ.
- เชฌเซเชเชฐเซ เชเชพเชฐเซเช เชฅเชฏเซเชฒ เชเซ เชเซ เชเซเชฎ เชคเซ เชคเชชเชพเชธเซ.
- เชเซ เชกเซเชฐเซเชจ เชตเชฟเชเชฟเชคเซเชฐ เชฐเซเชคเซ เชตเชฐเซเชคเซ เชเซ, เชคเซ เชคเซเชจเซ เชชเชเชกเซ เชฐเชพเชเซ เช เชจเซ เชคเซเชจเซ เชซเซเชฒเชฟเชช เชเชฐเซ. เช เชเซเชฐเชฟเชฏเชพ เชเซเชชเซเชเชฐเชจเซ เชเชฎเชฐเชเชจเซเชธเซ เชฎเซเชกเชฎเชพเช เชฎเซเชเชถเซ เช เชจเซ เชฐเซเชเชฐ เชคเชฐเชค เช เชฌเชเชง เชฅเช เชเชถเซ.
เชคเซเชฏเชพเชฐ เชเซเชก เช เชจเซ เชกเซเชฎเซ
เชฅเชฏเซเช!
เชเซเชก เชฒเชเชตเชพ เช เชจเซ เชชเชเซ เชฎเชถเซเชจเชจเซ เชชเชพเชณเชตเชพ เชฒเชพเชเซ เชเซ เชคเซ เชเซเชตเซเช เชคเชฎเชจเซ เชเชจเชเชฆ เชเชชเชถเซ! เชนเชตเซ เช เชฎเซ เชถเซเชงเซ เชเชพเชขเซเชฏเซเช เชเซ เชเซ เชกเซเชฐเซเชจเชจเซ เชตเซเชเชธ เชเชฎเชพเชจเซเชก เชธเชพเชเชญเชณเชตเชพเชจเซเช เชเซเชตเซ เชฐเซเชคเซ เชถเซเชเชตเชตเซเช. เชนเชเซเชเชคเชฎเชพเช, เชคเซเชฏเชพเช เชเชฃเซ เชตเชงเซ เชถเชเซเชฏเชคเชพเช เชเซ: เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชเชนเซเชฐเชพเชจเซ เชเชณเช, เชธเซเชตเชพเชฏเชคเซเชค เชซเซเชฒเชพเชเชเซเชธ, เชนเชพเชตเชญเชพเชต เชเชณเช เช เชจเซ เชเชฃเซเช เชฌเชงเซเช.
เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเซ เชถเซเช เชธเซเชเชจ เชเชฐเซ เชถเชเซ เชเซ?
เชธเซเชเชฟเชฒเชฌเซเชเซเชธ เชญเชฒเชพเชฎเชฃ เชเชฐเซ เชเซ:
- เชเชจเชฒเชพเชเชจ เชเซเชฐเซเชธ เชฒเชพเชเซ เชเชฐเซเชฏเซ
"เชชเชพเชฏเชฅเซเชจ เชกเซเชเชพ เชเชจเชพเชฒเชฟเชธเซเช" .- เชเชจเชฒเชพเชเชจ เชเซเชฐเซเชธ
"เชชเซเชฐเซเชซเซเชถเชจ เชซเซเชฐเชจเซเช เชเชจเซเชก เชกเซเชตเชฒเชชเชฐ" .- เชเช เชตเชฐเซเชทเชจเซ เชชเซเชฐเซเชเซเชเชฟเชเชฒ เชเซเชฐเซเชธ
"0 เชฅเซ PRO เชธเซเชงเซ PHP เชตเชฟเชเชพเชธเชเชฐเซเชคเชพ" .
เชธเซเชฐเซเชธ: www.habr.com