Web播放器 TcPlayer——腾讯直播sdk的网页播放器

腾讯云Web播放器TcPlayer主要用于在手机和PC浏览器上播放音视频流,无需用户安装App。本文档介绍了对接步骤,包括页面准备、HTML容器设置、视频播放、封面设置、多清晰度支持和错误提示语的定制,适用于有一定JavaScript基础的开发者。此外,还提供了源码参考、参数列表、实例方法列表、进阶攻略和常见问题解答。
摘要由CSDN通过智能技术生成

https://www.qcloud.com/document/product/267/7479

功能介绍

腾讯云Web播放器主要解决在手机浏览器和PC浏览器上播放音视频流的问题,使您的视频内容可以不依赖用户安装App就可以在朋友圈、微博等社交平台进行传播。

本文档适合有一定Javascript语言基础的开发人员阅读。

基础知识

对接之前先要了解如下的基础知识,非常有必要:

  • 直播和点播
    直播是指视频源是实时的,一旦主播停播了,这个地址就已经失去意义了,而且由于是实时直播,所以播放器在播直播视频的时候是没有进度条滴。
    点播是指视频源是一个服务器上的文件,文件只要没有被提供方删除,就随时可以播放, 而且由于整个视频都在服务器上,所以播放器在播点播视频的时候是有进度条的哦。

  • 协议的支持
    Web播放器的视频播放能力本身不是网页代码实现的,而是靠浏览器的支持,所以其兼容性并不像我们想象的那么好,您必须要接受一个事实:不是所有的手机浏览器都能有符合预期的表现,有些手机浏览器甚至根本就不支持视频播放。

    最常见的用于网页直播的视频源地址是以m3u8结尾的地址,我们称其为HLS (HTTP Live Streaming),这是苹果推出的标准。由于苹果的影响力,目前各手机浏览器产品对这种格式的兼容性最好,但它有个天然的问题,就是延迟比较大,一般是20-30秒左右的延迟,没有办法,在手机浏览器上我们并没有其它选择。

    在PC上情况会好很多,因为PC上的浏览器目前还没有抛弃flash控件,而flash控件不追求洁癖,支持的视频源格式挺多的,而且各浏览器上的flash控件都是Adobe它家自己开发,所以兼容性非常好。(悄悄滴告诉你,Chrome最近对flash的态度不太友好)

对接攻略

Step 1:页面准备工作

在需要播放视频的页面(包括PC或H5)中引入初始化脚本

<script src="//imgcache.qq.com/open/qcloud/video/vcplayer/TcPlayer-2.2.0.js" charset="utf-8"></script>; 

注意:直接用本地网页是调试不了的,因为腾讯云Web播放器处理不了这种情况下的跨域问题。

Step 2:HTML里放置容器

在需要展示播放器的页面位置加入播放器“容器”,也就是放一个div,然后给它取个名字,比如: id_test_video 。之后视频的画面都会在这个容器里渲染,容器的大小控制您可以使用div的属性进行控制,示例代码如下:

<div id="id_test_video" style="width:100%; height:auto;"></div> 

Step 3:对接视频的播放

接下来就要写 javascript 代码了,这些代码的作用是去指定的 URL 地址拉取音视频流,并将视频画面呈现到Step2中添加的容器里。

3.1 一次简单的播放

如下是一条典型的直播URL地址,它是HLS(m3u8)协议的,如果主播还在直播中的话,那么用 VLC 等播放器是可以直接打开该 URL 进行观看的:

http://2157.liveplay.myqcloud.com/2157_358535a.m3u8      // m3u8播放地址

我们现在要在手机浏览器上播放这个 URL 的视频,javascript代码可以这样写:

var player = new TcPlayer('id_test_video', {
"m3u8": "http://2157.liveplay.myqcloud.com/2157_358535a.m3u8", //请替换成实际可用的播放地址 "autoplay" : true, //iOS下safari浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的 "coverpic" : "http://www.test.com/myimage.jpg", "width" : '480',//视频的显示宽度,请尽量使用视频分辨率宽度 "height" : '320'//视频的显示高度,请尽量使用视频分辨率高度 }); 

这段代码就可以支持在PC以及手机浏览器上播放HLS(m3u8)协议的直播视频了,不过,前面我们有说过,HLS(m3u8)协议的视频虽然兼容性还不错(部分Android手机依然不支持),但其延迟非常高,大约20秒以上的延迟。

3.2 PC上实现更低的延迟

那么对于PC浏览器而言,我们是否可以做的更好呢?当然可以,因为PC浏览器支持flash,它可强大多了,现在我们的代码要这样写:

var player =  new TcPlayer('id_test_video', {
"m3u8": "http://2157.liveplay.myqcloud.com/2157_358535a.m3u8", "flv": "http://2157.liveplay.myqcloud.com/live/2157_358535a.flv", //增加了一个flv的播放地址,用于PC平台的播放 请替换成实际可用的播放地址 "autoplay" : true, //iOS下safari浏览器,以及大部分移动端浏览器是不开放视频自动播放这个能力的 "coverpic" : "http://www.test.com/myimage.jpg", "width" : '480',//视频的显示宽度,请尽量使用视频分辨率宽度 "height" : '320'//视频的显示高度,请尽量使用视频分辨率高度 }); 

跟前一段代码的区别就在于,我们增加了一个flv的播放地址,腾讯云Web播放器如果发现目前的浏览器是PC浏览器,会主动选择flv链路,因为可以实现更低的延迟。

当然,前提条件是FLV和HLS(m3u8)这两个地址都是可以出流的,如果您使用腾讯云的视频直播服务,这个问题是不需要犯愁的,因为腾讯云的每一条直播频道都默认支持FLV、RTMP和HLS(m3u8)三种播放协议。

3.3 播放不了怎么办?

如果您发现视频不能播放,基本上逃不出如下几个原因:

  • (原因一) 视频源有问题
    如果是直播URL,那一定要检查一下是不是主播已经停止推流了,状态不处于“直播中”的情况,可以用浮窗提示一下观众:“主播已经离开”。
    如果是点播URL,那要检查您要播放的文件是否还在服务器上,比如要播放的地址是否已经被其它人从点播系统移除了。

  • (原因二࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值