main
yiming 4 years ago
parent 4968eb592c
commit e093ceef1f

6834
bootstrap.css vendored

File diff suppressed because it is too large Load Diff

@ -7,16 +7,34 @@
</body> </body>
<script> <script>
$(function(){ $(function(){
let ip ;
$.getJSON("config.json", function (data){
console.log(data)
ip = data["serverIp"]
let webRtc = data["webRtcIp"]
WebRtcPlayer.setServer(webRtc);
var cameraId = getQueryVariable("cameraId"); var cameraId = getQueryVariable("cameraId");
let player = new WebRtcPlayer('camera','camera'+cameraId);
player.load('camera'+cameraId) $.ajax({
}); url:'/api/camera/'+cameraId,
type:'get',
data:{},
dataType:'json',
success:function(data){
let camera = data.data;
console.log("okkk2:"+camera)
if(camera != null){
let server = camera.rtcServer + ":" + camera.rtcServerPort;
var video = document.createElement('video')
video.setAttribute('id',cameraId)
video.autoplay = true
video.controls = true
video.muted = true
video.style = 'width:700px;'
video.setAttribute('class','video')
videos.appendChild(video)
let player = new WebRtcPlayer(server,cameraId,'camera'+cameraId);
}
},
error:function(){
console.log('请求出错!');
}
})
}); });

@ -1,47 +1,145 @@
<html> <html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>视觉大屏</title>
<link href="bootstrap.css" rel="stylesheet">
</head>
<script src="webrtcplayer.js"></script> <script src="webrtcplayer.js"></script>
<script src="jquery.min.js"></script> <script src="jquery.min.js"></script>
<body> <body >
<!-- <video id="camera1" class="camera" autoplay controls muted style="width:700px;"></video> <div class="container-fluid" id="videos" >
<video id="camera2" class="camera" autoplay controls muted style="width:700px;"></video> -->
</div>
</body> </body>
<script> <script>
var body = document.querySelector('body');
$(function(){ $(function(){
let ip ; let cameras=[];
$.getJSON("config.json", function (data){
console.log(data)
ip = data["serverIp"]
let webRtc = data["webRtcIp"]
WebRtcPlayer.setServer(webRtc);
$.ajax({ $.ajax({
url:ip+'/api/realTime/allCameras', url:'/api/realTime/allCameras',
type:'get', type:'get',
data:{}, data:{},
async:false,
dataType:'json', dataType:'json',
success:function(data){ success:function(data){
for(camera of data.data){ cameras = data.data;
var video = document.createElement('video') console.log(cameras);
video.setAttribute('id',camera.id) row = getQueryVariable("row");
video.autoplay = true column = getQueryVariable("column");
video.controls = true var videos = document.getElementById('videos');
video.muted = true let index = 0;
video.style = 'width:700px;' for(var i = 0;i<row;i++){
video.setAttribute('class','video') var div = document.createElement('div');
body.appendChild(video) div.setAttribute("class","row");
let player = new WebRtcPlayer(camera.id,'camera'+camera.id); div.setAttribute("style","height: calc(100% / "+row+");")
player.load('camera'+camera.id) for(var j = 0;j<column;j++){
} var video = document.createElement('video');
}, video.setAttribute("class","col-md-"+12/column);
error:function(){ video.autoplay = true;
console.log('请求出错!'); video.controls = true;
} video.muted = true;
}) video.setAttribute("style","padding-left: 0;padding-right: 0;object-fit: fill;");
}); if(index < cameras.length){
let camera = cameras[index];
video.setAttribute("id","camera"+camera.id)
index++;
}
div.appendChild(video);
}
videos.appendChild(div);
}
autoPlay(cameras);
}});
}); });
function autoPlay(cameras){
for(var i = 0; i<cameras.length;i++){
console.log(cameras[i])
let server = cameras[i].rtcServer + ":" + cameras[i].rtcServerPort;
let player = new WebRtcPlayer(server,"camera"+cameras[i].id,'camera'+cameras[i].id);
player.load('camera'+cameras[i].id);
}
}
function getQueryVariable(variable){
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
// var body = document.querySelector('body');
// $(function(){
// let ip ;
// $.getJSON("config.json", function (data){
// console.log(data)
// ip = data["serverIp"]
// let webRtc = data["webRtcIp"]
// WebRtcPlayer.setServer(webRtc);
// $.ajax({
// url:ip+'/api/realTime/allCameras',
// type:'get',
// data:{},
// dataType:'json',
// success:function(data){
// for(camera of data.data){
// var video = document.createElement('video')
// video.setAttribute('id',camera.id)
// video.autoplay = true
// video.controls = true
// video.muted = true
// video.style = 'width:700px;'
// video.setAttribute('class','video')
// body.appendChild(video)
// let player = new WebRtcPlayer(camera.id,'camera'+camera.id);
// player.load('camera'+camera.id)
// }
// var de = document.documentElement;
// if (de.requestFullscreen) {
// de.requestFullscreen();
// } else if (de.mozRequestFullScreen) {
// de.mozRequestFullScreen();
// } else if (de.webkitRequestFullScreen) {
// de.webkitRequestFullScreen();
// }
// },
// error:function(){
// console.log('请求出错!');
// }
// })
// });
// });
</script> </script>
<style>
/* 固定容器高度 溢出隐藏 */
body {
padding:0;
margin:0;
min-height: 100vh;
}
.container-fluid > .row {
height: calc(100% / 4);
}
.container-fluid > .row > video {
height: 100%;
object-fit: fill;
}
</style>
</html> </html>

@ -16,14 +16,8 @@
$("#streets").empty(); $("#streets").empty();
var map = {} var map = {}
$(function(){ $(function(){
let ip ;
$.getJSON("config.json", function (data){
console.log(data)
ip = data["serverIp"]
let webRtc = data["webRtcIp"]
WebRtcPlayer.setServer(webRtc);
$.ajax({ $.ajax({
url:ip+'/api/street/list', url:'/api/street/list',
type:'get', type:'get',
data:{}, data:{},
dataType:'json', dataType:'json',
@ -55,7 +49,6 @@
console.log('请求出错!'); console.log('请求出错!');
} }
}) })
});
}); });
@ -63,13 +56,10 @@
$("#streets").change(function(){ $("#streets").change(function(){
var item = $(":selected").get(0).getAttribute('id'); var item = $(":selected").get(0).getAttribute('id');
var cameras = map[item] var cameras = map[item]
console.log(item) console.log("d"+cameras)
if(cameras.length > 0){ if(cameras.length > 0){
camera2 = null
if(cameras.length >1){ autoPlay(cameras[0],cameras[1])
camera2 = cameras[1]
}
autoPlay(cameras[0],camera2)
} }
}); });
@ -81,6 +71,16 @@
videos.removeChild(videos.firstChild) videos.removeChild(videos.firstChild)
} }
if(camera1 != null && camera1 != undefined){ if(camera1 != null && camera1 != undefined){
$.ajax({
url:'/api/camera/'+camera1,
type:'get',
data:{},
dataType:'json',
success:function(data){
let camera = data.data;
console.log("okkk1:"+camera)
if(camera != null){
let server = camera.rtcServer + ":" + camera.rtcServerPort;
var video = document.createElement('video') var video = document.createElement('video')
video.setAttribute('id',camera1) video.setAttribute('id',camera1)
video.autoplay = true video.autoplay = true
@ -89,10 +89,26 @@
video.style = 'width:700px;' video.style = 'width:700px;'
video.setAttribute('class','video') video.setAttribute('class','video')
videos.appendChild(video) videos.appendChild(video)
let player = new WebRtcPlayer(camera1,'camera'+camera1); let player = new WebRtcPlayer(server,camera1,'camera'+camera1);
player.load('camera'+camera1) }
},
error:function(){
console.log('请求出错!');
}
})
} }
if(camera2 != null && camera2 != undefined){ if(camera2 != null && camera2 != undefined){
$.ajax({
url:'/api/camera/'+camera2,
type:'get',
data:{},
dataType:'json',
success:function(data){
let camera = data.data;
console.log("okkk2:"+camera)
if(camera != null){
let server = camera.rtcServer + ":" + camera.rtcServerPort;
var video = document.createElement('video') var video = document.createElement('video')
video.setAttribute('id',camera2) video.setAttribute('id',camera2)
video.autoplay = true video.autoplay = true
@ -101,8 +117,14 @@
video.style = 'width:700px;' video.style = 'width:700px;'
video.setAttribute('class','video') video.setAttribute('class','video')
videos.appendChild(video) videos.appendChild(video)
let player = new WebRtcPlayer(camera2,'camera'+camera2); let player = new WebRtcPlayer(server,camera2,'camera'+camera2);
player.load('camera'+camera2) }
},
error:function(){
console.log('请求出错!');
}
})
} }
}; };

@ -1,5 +1,4 @@
class WebRtcPlayer { class WebRtcPlayer {
static server = '127.0.0.1:8083';
webrtc = null; webrtc = null;
video = null; video = null;
server = null; server = null;
@ -11,8 +10,8 @@ class WebRtcPlayer {
onStatusChange:null onStatusChange:null
}; };
constructor(id, uuid, options={}) { constructor(server,id, uuid, options={}) {
this.server = WebRtcPlayer.server; this.server = server;
this.video = document.getElementById(id); this.video = document.getElementById(id);
this.uuid = uuid; this.uuid = uuid;
Object.assign(this.options, options); Object.assign(this.options, options);
@ -108,8 +107,4 @@ class WebRtcPlayer {
canvas.remove(); canvas.remove();
return dataURL; return dataURL;
} }
static setServer(serv) {
this.server = serv;
}
} }

Loading…
Cancel
Save