47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
var express = require("express");
|
|
var socketio = require("socket.io");
|
|
var MediaPlayer = require("./mediaplayer");
|
|
|
|
var app = express();
|
|
var server = app.listen(1234);
|
|
var io = socketio(server);
|
|
|
|
app.use(express.static("."));
|
|
|
|
|
|
var player = new MediaPlayer();
|
|
player.setMedia("media/nyan_cat.webm").then(() => {
|
|
player.play();
|
|
});
|
|
|
|
player._emit = player.emit;
|
|
player.emit = function() {
|
|
console.debug("player emit", arguments);
|
|
player._emit.apply(player, arguments);
|
|
}
|
|
|
|
player.on("end", () => setTimeout(() => player.play(), 5000));
|
|
|
|
|
|
io.on("connection", socket => {
|
|
socket.on("syncme", () => {
|
|
socket.emit("media", player.file);
|
|
socket.emit("pos", player.position);
|
|
if (player.playing) socket.emit("play");
|
|
else socket.emit("pause");
|
|
});
|
|
socket.on("reqpos", () => socket.emit("pos", player.position));
|
|
socket.on("c_pos", pos => player.position = pos);
|
|
socket.on("c_pause", () => player.pause());
|
|
socket.on("c_play", () => player.play());
|
|
});
|
|
|
|
player.on("media", file => io.emit("media", file));
|
|
player.on("play", () => io.emit("play"));
|
|
player.on("pause", () => io.emit("pause"));
|
|
player.on("pos", pos => io.emit("pos", pos));
|
|
player.on("end", () => io.emit("end"));
|
|
|
|
|
|
|
|
global.player = player; |