web网页播放器使用总结
来源:互联网 发布:政府用什么数据库 编辑:程序博客网 时间:2024/05/22 17:36
近几年,网络直播比较火,各大互联网巨头都在各自的app中推出了直播频道,比如网易、腾讯等。我们公司也顺应潮流,最近开发了自己的直播项目。下面跟大家分享下我使用web播放器的经历。
一.网易web播放器
一开始我们选定使用网易直播云,顺利成章的我就使用网易的播放器,网易官方提供的播放器使用简单,文档规范,api也比较齐全,开发起来还是很顺利的,但是后来公司决定改用七牛的平台。那么我的问题就来了,播放器能否兼容是个问题,对于坑爹的网易,七牛的拉流虽然大部分可以播放,但是我测试时还是有一个线路播放不了,没办法,只能换播放器了。不过可以理解,公司的自我保护措施嘛。
二.其它开源播放器
七牛官网上推荐了两款开源播放器,mediajs和mediaelement。链接地址:直播相关的html5网页端播放器。说实话,这两款播放器个人感觉不怎么美观,但是没有找到更好的,只能在这两个中间选一个了。
对于mediajs这个播放器,我用七牛的一个回播地址测试,播放不了,demo地址:mediajs播放器bug。而mediaelementplayer可以正常播放,所以我就选择了mediaelementplayer。
1.mediaelementplayer播放器使用方法
详细使用方法请参照官网:官网。
使用demo请点击:demo。
下面简要说下实际使用方法。
首先当然是在head标签中引入csss文件:
<link href="../resource/css/lib/mediaelement/mediaelementplayer.min.css" rel="stylesheet">然后在<body>标签的最底部引入js文件:
<script src="../resource/js/lib/mediaelement/mediaelement-and-player.min.js"></script>video标签的初始化如下:
<video id="video-player" width="100%" height="200" controls="controls" preload="auto"> <source type="application/x-mpegURL" src="http://foodsound.qiniudn.com/video/hls/introducing_thinglist_240.m3u8"> <!--必须写src属性,否则播放器初始化异常--> </video>对播放器初始化的js代码如下:
var videoUrl = null; if (status == 1) { // 未开始 videoUrl = null; $(".video-poster").show(); } else if (status == 2) { // 正在直播 videoUrl = liveStudio.liveStudioLines[0].playHls; new MediaElementPlayer("#video-player", { success: function (mediaElement, originalNode) { videoPlayer = mediaElement; videoPlayer.setSrc(videoUrl); } }); } else if (status == 3) { // 已经结束 videoUrl = liveStudio.liveStudioLines[0].playback; var type = "application/x-mpegURL"; if (videoUrl.indexOf(".mp4") > 0) { type = "video/mp4"; } $("#video-player source").attr('type', type); $("#video-player source").attr('src', videoUrl); // 更换type时必须同时更换src,否则播放器初始化不正常 new MediaElementPlayer("#video-player", { success: function (mediaElement, originalNode) { videoPlayer = mediaElement; videoPlayer.setSrc(videoUrl); } }); }如果直播有多个线路需要切换时,js代码如下:
$(".choose-line").on('click', '.choose-line-btn', function () { $(".choose-line").find('li.line-selected').removeClass('line-selected'); $(this).addClass('line-selected'); var status = liveStudio.status; var liveStudioLines = liveStudio.liveStudioLines; if (status == 2) { var sourceUrl = liveStudioLines[parseInt($(this).find('.line-number').text() - 1)].playHls; } else if (status == 3) { sourceUrl = liveStudioLines[parseInt($(this).find('.line-number').text() - 1)].playback; } videoPlayer.pause(); videoPlayer.setSrc(sourceUrl); videoPlayer.play(); });
2.mediaelementplyaer初始化时必须给定src属性值
在调试过程中,我发现如果不给<video>标签中的src赋值,即使在dom加载完后,在js代码中给video的src赋值,播放器不能正常播放。但是如果给定src值,dom加载完后,即使js未对播放器初始化,播放器也会播放默认src地址的视频,这样在直播未开始的状态下,显然是不合理的。
对于这个问题,我在播放器上方叠加了一张图片,在直播未开始时,这张图片显示出来,用户点击不了播放按钮,就避免了这个问题。
3.mediaelementplayer播放hls格式视频不能全屏
mediaelementplyaer播放hls格式视频不能全屏,播放mp4和rtmp的正常,七牛上提供的demo也有这个问题,这是一个bug了,但是目前还没找到解决的办法。
4.type与src要匹配
对于web播放器,type与src一定要对应,网易播放器如果两者不对应,会直接报错。
- web网页播放器使用总结
- 网页视频播放器代码总结大全
- 网页播放视频总结
- 网页播放器Object使用详解
- html网页 swf播放器使用代码
- jwpalyer网页播放器的使用
- 开源网页播放器JWplayer使用
- 使用Video.js打造网页播放器
- 使用CkPlayer网页播放器实现视频播放
- 没有播放器软件,直接使用网页播放本地视频
- 网页播放器实现全屏的方法总结
- 比较好的网页视频播放器总结
- 关于网页在线视频播放器ckplay的部分总结!
- 网页播放器
- 网页播放器代码
- Winamp网页播放器
- 网页播放器代码
- 网页播放器源代码
- 幸福的香味
- React Native 控件之 Modal 详解 - Android/iOS 双平台通用
- 微信公众平台开发获取接收消息
- gcc __attribute__属性demo
- 纯css制作带三角border篇(兼容所有浏览器)
- web网页播放器使用总结
- 《围城》读后感
- CS143-project2 局部特征匹配 Local Feature Matching
- CMake
- 欢迎使用CSDN-markdown编辑器
- myeclipse blue破解技巧
- MySQL5.6安装,修改密码,创建一定权限用户
- tensorflow之路-如何处理原始文本数据
- 23种设计模式(2):工厂方法模式