html5及android多个视频连续播放问题
2014-10-23 15:30
429 查看
<!DOCTYPE html> <html> <head> <meta http-equiv=Content-Type content="text/html; charset=utf-8"> <title>h5test</title> <style type="text/css"> body, html { height: 100%; width: 100%; } *{ margin:0px; padding:0px; } #mapArea { position:absolute; width:20%; height:20%; right:15px; top:15px; z-index:2; } #video1 { position:absolute; width:100%; height:95%; } #controlArea { position:absolute; background-color:#eee; width:100%; height:5%; bottom:0px; text-align:center; } #play { margin:auto; width:100px; height:40px; } </style> <script charset="utf-8" src="http://map.qq.com/api/js?v=2.exp"></script> <script charset="utf-8" src="js/jquery-1.8.0.min.js"></script> <script charset="utf-8" src="js/jquery-jsonp.js"></script> <script charset="utf-8" src="js/html5Preloader.js"></script> </head> <body onload="init();"> <div id="mapArea"></div> <div id="videoArea"> <video id="video1" preload="auto"> <source src="" type="video/mp4"/> Your browser does not support HTML5 video. </video> </div> <div id="controlArea"> <button id="play" onclick="playPause()">播放/暂停</button> </div> <script type="text/javascript"> // var playList = new Array("http://125.39.210.20/mobile/mobile2_hd1.mp4", "http://125.39.210.20/mobile/mobile2_hd2.mp4", "upload/mov_bbb.mp4", "upload/2.mp4"); var playList = new Array(); var currentIndex = 0; var myVideo1=document.getElementById("video1"); myVideo1.addEventListener("ended", function() { if(currentIndex >= playList.length) return; // alert("ReadyState:" + myVideo2.readyState + "Start: " + myVideo2.buffered.start(0) + " End: " + myVideo2.buffered.end(0)); getVideo(myVideo1, currentIndex++); myVideo1.play(); }, false); function init() { var min = 10; var max = 17; var map = new qq.maps.Map(document.getElementById("mapArea"), { // 地图的中心地理坐标。 center: new qq.maps.LatLng(39.91474,116.37333), zoom:10, minZoom: min, maxZoom: max }); getPlayList(); } function playPause() { if (myVideo1.paused) myVideo1.play(); else myVideo1.pause(); } function getVideo(video, i) { if (i < playList.length && playList[i] != "") { video.src = playList[i]; } else { alert("Enter a valid video URL"); // fail silently } } function getPlayList(){ var gurl = 'http://125.39.210.20/videoindex' + "?callback=?"; $.jsonp({ url: gurl, data: {track_id:7}, success: function (data, textStatus, xOptions) { var myLoader = html5Preloader(); //预加载视频 // myLoader.addFiles("http://123.151.37.91/vcloud.tc.qq.com/1019_229bd248a5594e9e98fdd3e047328fcb.f0.mp4" // + "?vkey=5907698E6251D230B8E61D9458C06E2AA26CF3D44F7E8866A8B46DDC9639D689D8E605C494CC9891" // + "&sha=3c87b52f0177e20de9f834b14099b7faa860e69b"); for (var video in data.videos) { playList[data.videos[video].order - 1] = data.videos[video].url; myLoader.addFiles(data.videos[video].url); }; getVideo(myVideo1, currentIndex++); }, error: function (xOptions, textStatus) { alert(xOptions + "error2 status: "+ textStatus); } }); } </script></body> </html>
街景地图有好多短小的视频,要求把这些短视频串起来播放,首先做成网页版的html5格式,可以支持在网页中通过微信分享。
1、html5有专门播放视频的video控件,可以直接播放视频,在第一个视频播放完毕后改变src加载第二个视频。
这样有一个问题就是视频切换的时候存在闪烁黑屏。
优酷上的长视频(比如2小时)其实是有好多小视频(6分钟)拼接起来的,在网页上用的是flash,可以实现基本感受不到的切换耗时(这个实现调了一个很长的js脚
本)。在手机上用的是html5的video标签,在每个视频切换时会转缓冲圈,时间很短,说明做过预加载。腾讯视频上的长视频(比如两小时)其实就是一个长视频,所以好处
理。
也问过腾讯视频那边的负责人,他们说视频拼接播放实现很困难。我也尝试过做下一个视频的预加载,网上找了一个html5perloader.js的开源代码,不过很奇怪的原
因,用chrome的F12的network调试的时候发现有的视频第二次加载是从cache,而我试线上的视频就不是了,可能我没用对html5perloader吧,不过这个开源代码没有文档,
自己看了它的代码,只怪自己没做过js,所以没怎么看懂。
上面是我写的html5的代码,很简单,中间访问线上视频的时候出现了access-origin跨域的问题,可以参考这个链接http://blog.csdn.net/net_lover/article/details/5172509/
2、Android端主要用videoview控件实现多个视频的连续播放,也是在第一个视频播放完成后出发completed事件播放下一个视频,自己在网上找了一个通过socket建立代
理服务器的预加载方法,链接为:http://blog.csdn.net/hellogv/article/details/7911293,这是一个系列。
另外我发现当completed事件发生时加载本地的视频在不同的手机上也
会出现不同的效果,有的停顿时间很短有的停顿时间很长。
相关文章推荐
- Android HTML5 Video视频标签自动播放与自动全屏问题解决
- 【转】Android HTML5 Video视频标签自动播放与自动全屏问题解决
- 不完全解决Android微信HTML5 播放视频的问题(不显示控制条,可交互)
- Android HTML5 Video视频标签自动播放与自动全屏问题解决
- 一个html5播放视频的video控件只支持android的默认格式mp4和3gp
- 解决vlc-android播放http视频退出问题
- Android webview加载html5网络视频全屏播放
- android VideoView播放工程raw下的视频+全屏问题
- android播放html5视频,仅仅有声音没有图像视频
- WebView播放HTML5视频,黑屏的问题。
- html5在 Android / IOS上不能自动播放音乐或视频
- 写了个html5播放视频的video控件,只支持mp4和3gp(android和ios默认支持的格式就写了这个)
- Android 使用Webview无法播放视频问题的解决办法
- 关于android视频播放显示区域不正常的问题,一些处理方法
- android 视频播放问题,无法播放该视频?
- android 播放assets文件里视频文件的问题
- 关于android视频播放开发中 播放视频只有声音没有图像的问题解决方案
- android Mediaplayer 播放视频 只有声音没有画面的问题
- android webView 无法播放视频,无法暂停,继续播放视频问题,无法根据浏览器居中显示内容问题
- 解决Android中WebView视频无法播放的问题