<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title></title>
<style type="text/css">
html,body{
width:100%;
height:100%;
}
.div2{
background-color: blue;
width: 100px;
height: 100px;
float: left;
margin-left:300px;
margin-top:-400px;
}
#container{
width:100%;
height:90%;
}
*{
margin:0px;
padding:0px;
}
body, button, input, select, textarea {
font: 12px/16px Verdana, Helvetica, Arial, sans-serif;
}
</style>
<script charset="utf-8" src="" target="_blank">https://map.qq.com/api/js?v=2.exp&key=OB4BZ-D4W3U-B7VVO-4PJWW-6TKDJ-WPB77"></script>
<script>
function init() {
var center = new qq.maps.LatLng(22.53291,113.93029);
var map = new qq.maps.Map(document.getElementById("container"), {
center: center,
zoom: 13
});
var infoWin0 = new qq.maps.InfoWindow({
map: map
});
var infoWin1 = new qq.maps.InfoWindow({
map: map
});
var infoWin2 = new qq.maps.InfoWindow({
map: map
});
var latlngs = [
new qq.maps.LatLng(22.53113,113.90650),
new qq.maps.LatLng(22.53086,113.92653),
new qq.maps.LatLng(22.52523,113.9)
];
for(var i = 0;i < latlngs.length; i++) {
(function(n){
var marker = new qq.maps.Marker({
position: latlngs[n],
map: map
});
qq.maps.event.addListener(marker, 'click', function() {
if(n==0)
{
infoWin0.open();
getMedia();
/* infoWin.setContent('<div style="text-align:center;white-space:'+
'nowrap;margin:10px;"> ' +
n + '接入摄像头</div>'); */
infoWin.setPosition(latlngs[n]);
}
if(n==1)
{
infoWin.open();
infoWin.setContent('<div style="text-align:center;white-space:'+
'nowrap;margin:10px;">接入街景模式 ' +
n +'<img src="3.png">' +' </div>');
infoWin.setPosition(latlngs[n]);
}
if(n==2)
{
infoWin.open();
infoWin.setContent('<div style="text-align:center;white-space:'+
'nowrap;margin:10px;">这 ' +
n + ' 是前海保税区!</div>');
infoWin.setPosition(latlngs[n]);
}
});
})(i);
}
}
function getMedia() {
let constraints = {
//参数
video: {width: 500, height: 500},
audio: true
};
//获得video摄像头区域
let video = document.getElementById("video");
//返回的Promise对象
let promise = navigator.mediaDevices.getUserMedia(constraints);
//then()异步,调用MediaStream对象作为参数
promise.then(function (MediaStream) {
video.srcObject = MediaStream;
video.play();
});
}
function takePhoto() {
//获得Canvas对象
//let video = document.getElementById("video");
let canvas = document.getElementById("canvas");
let ctx = canvas.getContext('2d');
//绘图
ctx.drawImage(video, 0, 0, 300, 300);
}
function stopMedia(videoElem) {
const stream = videoElem.srcObject;
const tracks = stream.getTracks();
tracks.forEach(function(track) {
track.stop(); //停止视频流
});
videoElem.srcObject = null;
}
</script>
</head>
<body onload="init();">
<div id="container" style="background-color:red"></div>
<div class="div2" >
<input type="button" title="关闭摄像头" value="关闭摄像头" onclick="stopMedia(video)" />
<video id="video" width="500px" height="500px" autoplay="autoplay"></video>
<canvas id="canvas" width="500px" height="500px"></canvas>
</div>
</body>
</html>