91 lines
2.3 KiB
HTML
91 lines
2.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<link rel="stylesheet" href="/bricks/3parties/xterm.css" />
|
|
<link href="/bricks/3parties/video-js.css" rel="stylesheet" />
|
|
<link rel="stylesheet" href="/bricks/css/bricks.css">
|
|
</head>
|
|
<body>
|
|
<script type="text/javascript" src="https://registry.npmmirror.com/echarts/5.5.1/files/dist/echarts.min.js"></script>
|
|
<script src="/bricks/3parties/marked.min.js"></script>
|
|
<script src="/bricks/3parties/xterm.js"></script>
|
|
<!---
|
|
<link href="https://unpkg.com/video.js@6/dist/video-js.css" rel="stylesheet">
|
|
<script src="https://unpkg.com/video.js@6/dist/video.js"></script></head>
|
|
--->
|
|
<script src="/bricks/3parties/video.min.js"></script>
|
|
<script src="/bricks/3parties/recorder.wav.min.js"></script>
|
|
<script src="/bricks/bricks.js"></script>
|
|
<script>
|
|
const deviceid = bricks.deviceid('atvoe');
|
|
var dc_msg = async function(dc, msg){
|
|
var w = bricks.getWidgetById('player', bricks.Body);
|
|
var d = JSON.parse(msg);
|
|
switch (d.type){
|
|
case 'play':
|
|
w.set_source(d.url);
|
|
break;
|
|
case 'mute':
|
|
w.set_mute();
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
dc.send('{"status":"ok"}');
|
|
}
|
|
var signaling = new bricks.Signaling({
|
|
signaling_url:'wss://atvoe.com/wss/ws/rtc_signaling.ws',
|
|
info:{
|
|
id:deviceid
|
|
},
|
|
heartbeat_period:300,
|
|
connect_opts:{
|
|
on_dc_message:dc_msg,
|
|
data_connect:true,
|
|
media_options:{
|
|
video:true,
|
|
audio:true
|
|
},
|
|
ice_servers:[
|
|
{
|
|
"urls":"stun:stun.open-computing.cn:13478"
|
|
}, {
|
|
"urls":"turn:stun.open-computing.cn:13479",
|
|
"username":"turn",
|
|
"credential":"server"
|
|
}
|
|
],
|
|
auto_callaccept:true
|
|
}
|
|
});
|
|
signaling.add_sessionhandler('p2p', bricks.RTCP2PConnect);
|
|
|
|
const opts = {
|
|
"widget": {
|
|
"widgettype":"VBox",
|
|
"options":{
|
|
"width":"100%",
|
|
"height":"100%"
|
|
},
|
|
"subwidgets":[
|
|
{
|
|
"widgettype":"urlwidget",
|
|
"options":{
|
|
"url":"/tvplayer.dspy",
|
|
"params":{
|
|
"deviceid":deviceid
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
};
|
|
const app = new bricks.App(opts);
|
|
app.run();
|
|
</script>
|
|
</body>
|
|
</html>
|