将FlowPlayer嵌入谷歌地图信息窗口
embed FlowPlayer into Google Maps InfoWindow
我正在用谷歌地图制作一个网站,我想把流播放器rtmp流视频嵌入到信息窗口中,但我不知道该怎么做。我正在从数据库中读取链接等属性,然后创建信息窗口。以下是创建地图和信息窗口的代码:
function initialize() {
//here were map properties and custom icons, unnecesary for problem
var infoWindow = new google.maps.InfoWindow;
downloadUrl("phpsqlajax_genxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var id = markers[i].getAttribute("id");
var name = markers[i].getAttribute("name");
var type = markers[i].getAttribute("type");
var link = markers[i].getAttribute("link");
var html = ' !!! PLAYER HERE !!!'
// youtube video works
// var html = '<iframe width="560" height="315" src="'+link+'" frameborder="0" allowfullscreen></iframe>'
var point = new google.maps.LatLng(
markers[i].getAttribute("lang"),
markers[i].getAttribute("lati"));
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map:map,
position: point,
title: name,
icon: icon.icon,
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
google.maps.event.addDomListener(window, 'load', initialize);
下面是来自flowplayer的示例代码。
<head>
<!-- flowplayer javascript component -->
<script src="http://releases.flowplayer.org/js/flowplayer-3.2.13.min.js"> </script>
</head>
<body>
</div>
<!-- widescreen container, 560x240 (clip dimensions) * 1.15, center splash -->
<div id="wowza" style="width:644px;height:276px;margin:0 auto;text- align:center">
<img src="/media/img/player/splash_black.jpg" height="276" width="548" />
</div>
<script>
$f("wowza", "http://releases.flowplayer.org/swf/flowplayer-3.2.18.swf", {
clip: {
url: 'mp4:vod/demo.flowplayer/buffalo_soldiers.mp4',
scaling: 'fit',
// configure clip to use hddn as our provider, referring to our rtmp plugin
provider: 'hddn'
},
// streaming plugins are configured under the plugins node
plugins: {
// here is our rtmp plugin configuration
hddn: {
url: "flowplayer.rtmp-3.2.13.swf",
// netConnectionUrl defines where the streams are found
netConnectionUrl: 'rtmp://r.demo.flowplayer.netdna-cdn.com/play'
}
},
canvas: {
backgroundGradient: 'none'
}
});
</script>
</body>
那么我该如何在信息窗口中实现播放器呢?提前感谢!
所以我设法让它工作起来——看看html变量、flowplayerrr()函数和bindInfoWindow()。点击某个标记后,会弹出一个带有飞溅图像的信息窗口,点击飞溅后,会加载视频。
downloadUrl("phpsqlajax_genxml.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var id = markers[i].getAttribute("id");
var name = markers[i].getAttribute("name");
var type = markers[i].getAttribute("type");
var link = markers[i].getAttribute("link");
var html =
'<head>'+
'<script src="http://releases.flowplayer.org/js/flowplayer-3.2.13.min.js"></script>'+
'</head>'+
'<body>'+
'<div id="container" style="width:300px;height:300px;margin:0 auto;text-align:center">'+
'<div id="wowza" style="width:280px;height:280px;margin:0 auto;text-align:center">'+
'<img src="/images/splash/'+type+'.png" height="280" width="280" style="cursor:pointer" />'+
'</div>'+
'</div>'+
'</body>';
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
flowplayerrr();
map.setCenter(marker.getPosition());
});
}
function flowplayerrr() {
$.getScript("http://releases.flowplayer.org/js/flowplayer-3.2.13.min.js", function(){
$f("wowza", "http://releases.flowplayer.org/swf/flowplayer-3.2.18.swf", {
clip: {
url: 'mp4:vod/demo.flowplayer/buffalo_soldiers.mp4',
scaling: 'scale',
// configure clip to use hddn as our provider, referring to our rtmp plugin
provider: 'hddn'
},
// streaming plugins are configured under the plugins node
plugins: {
// here is our rtmp plugin configuration
hddn: {
url: "flowplayer.rtmp-3.2.13.swf",
// netConnectionUrl defines where the streams are found
netConnectionUrl: 'rtmp://r.demo.flowplayer.netdna-cdn.com/play'
}
},
canvas: {
backgroundGradient: 'none'
}
});
});
}
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 定义完全独立的样式信息
- 使用html2canvas获取基本信息
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 从信息框调用弹出图像库
- 如何在不传递此信息的情况下查找被调用的元素
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 如何通过解析类信息来使用jQuery创建类
- 包含数据库中相关信息的开放模态
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- ng在更新$scope后重复不更新信息
- 谷歌地图点击潜水触发信息窗口
- 根据CHECKBOX输入值动态更新DIV信息
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- Jquery on单击“显示信息”
- 将FlowPlayer嵌入谷歌地图信息窗口
- AEM(cq5)使用组件内的信息
- 如何在完整日历中的当天点击时显示活动详细信息
- 使用javascript后台脚本获取Yotutube频道信息