Web Player TcPlayer

Web Player TcPlayer


详细请参考:https://cloud.tencent.com/document/product/881/44876

  • 概述

tcplayer lite主要用于在手机浏览器和PC浏览器中播放音频/视频流。使用该播放器,您可以在微信时刻和微博等社交平台上共享视频,而无需安装其他应用程序。本文档面向具有JavaScript基本知识的开发人员。

  • 基础

入门前必须学习的基本知识:

LVB和VOD

实时生成LVB视频源。一旦VJ停止广播,LVB URL就变得无效,并且由于实时播放实时流,因此在播放期间播放器上不显示任何进度条。

VOD视频源是服务器上的一个文件,只要未被提供商删除,就可以随时播放。由于整个视频文件都存储在服务器上,因此在播放过程中会显示进度条。

支持的协议

使用web播放器播放视频取决于浏览器,而不是网页中的代码。因此,兼容性可能比我们预期的要低。事实上,并非所有的移动浏览器都能产生预期的性能结果。一些移动浏览器甚至根本不支持视频播放。用于在网页上播放视频的最常见视频源URL是以“m3u8”结尾的URL。我们称之为HLS(httplivestreaming),这是苹果公司的标准。目前,由于苹果的影响,这种格式与各种手机浏览器产品的兼容性最好。然而,这种格式有一个缺点:20-30秒的大延迟。即便如此,对于移动浏览器,我们也没有其他选择。

这种情况在PC上看起来更好,因为PC浏览器仍然使用支持各种视频源格式的FLASH小部件。另外,针对不同浏览器的FLASH小部件都是Adobe开发的,所以兼容性很好。

  • 接口

1.  将初始化脚本引入要播放视频的页面(包括PC或H5)

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

不能直接使用本地页执行调试,因为tcplayer无法处理这种情况下的跨域问题

2.  将容器放入HTML

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

3.  准备视频播放

下一步是编写JavaScript代码,用于从指定的URL提取音频/视频流,并在步骤2中添加的容器中显示视频。

    3.1简单的回放

    典型的LVB URL如下所示,它基于HLS(m3u8)协议。只要VJ还在广播,VLC等播放器就可以直接打开这个URL来观看视频:

    http://2157.liveplay.myqcloud.com/2157_358535a.m3u8      //m3u8 playback URL

    3.2由于PC浏览器支持flash,JavaScript代码如下

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", //Add an FLV playback URL to play videos on PC. Replace the URL with a valid playback URL.
"autoplay" : true,      //Most mobile browsers including Safari on iOS do not support auto video playback.
"coverpic" : "http://www.test.com/myimage.jpg",
"width" :  '480',//Video display width. Use the video definition width if possible.
"height" : '320'//Video display height. Use the video definition height if possible.
});

    与手机端相比,我们添加了一个FLV回放URL。当TcPlayer检测到浏览器是PC浏览器时,它将选择FLV链接以实现较低的延迟。条件是FLV和HLS(m3u8)地址都可以流式传输视频。如果您使用腾讯云VOD服务,您不必考虑这个问题,因为腾讯云的每个VOD频道都支持三种协议:FLV、RTMP和HLS(m3u8)。

    3.3为什么视频不能播放?

    3.3.1 视频源无效

    3.3.2PC浏览器基于Flash小部件实现视频播放。以前做过Flash开发的人都知道Flash小部件执行跨域访问检查。如果要播放的视频所在的服务器上未部署跨域策略,则会遇到此问题。解决方法可以是:查找跨域配置文件跨域.xml在视频服务器的根域名下添加域名腾讯网致:

<cross-domain-policy>
<allow-access-from domain="*.qq.com" secure="false"/>
</cross-domain-policy>

4.  播放器配置封面图像

你可以将图片的URL作为玩家的封面图片传递给coverpic。图像将以实际分辨率显示在播放器区域的中心。

"coverpic" : "http://www.test.com/myimage.jpg"

配置封面图像显示样式:

default:以实际分辨率在中间显示图像;

stretch:拉伸图像以填充整个播放器区域。这可能会扭曲图像。

cover:水平拉伸图像,同时保持其比例以填满播放器区域。图像可能无法在区域中完全显示。

"coverpic" : {"style":"stretch", "src":"http://www.test.com/myimage.jpg"}

5.   多定义支持

5.1原理

您可以为上的视频选择不同的定义优酷网, 土豆网或者腾讯。我们如何实现这个特性?

首先,你应该知道播放器不能改变视频的清晰度。生成视频源时只有一个定义,称为“原始”。原始视频有不同的编码格式和封装格式,网页不支持所有的视频播放格式。在VOD场景中,视频的编码格式必须是H.264,封装格式必须是MP4或FLV。

那么,多定义选择是如何实现的呢?这就是视频云发挥作用的地方:

在LVB场景中,VJ的原始视频将在腾讯云中实时转码,然后将转码后的视频分发到不同的频道,例如“高清(HD)”和“标准清晰度(SD)”。每个频道的视频都有其相应的URL:

http://2157.liveplay.myqcloud.com/2157_358535a.m3u8          //Original
http://2157.liveplay.myqcloud.com/2157_358535a_900.m3u8      //HD
http://2157.liveplay.myqcloud.com/2157_358535a_550.m3u8      //SD

注:上传的原创视频未经腾讯云转码,不能直接播放。

6.  自定义错误消息

var player = new TcPlayer('id_test_video', {
"m3u8"   : "http://200002949.vod.myqcloud.com/200002949_b6ffc.f0.m3u8",//Replace the URL with a valid playback URL.
"autoplay" : true,      //Safari browser on iOS do not support this feature.
"coverpic" : "http://www.test.com/myimage.jpg",
"wording": {
    2032: "Video request failed, check your network.",
    2048: "m3u8 file request failed, this may be caused by network error or cross-domain issue."
}
});

错误代码参考表 具体查看(https://intl.cloud.tencent.com/document/product/267/7479  6.3)

7.  参数列表 

大致举例:m3u8、m3u8_hd、m3u8_sd、flv、flv_hd、flv_sd、mp4、mp4_hd、mp4_sd、rtmp、rtmp_hd、rtmp_sd、h5_flv(是否启用flv.js公司播放flv视频)、x5_player(TBS模式播放)

具体参考上述连接

8.  实例方法列表

大致举例:play()、pause()、togglePlay()--切换视频播放状态、mute(muted)--切换静音状态、volume(val)、playing()、duration()--获取视频持续时间(点播)、currentTime(time)-配置视频播放时间点(点播)、fullscreen(enter)--(全屏API)、buffered()--获取视频缓冲区数据百分比(点播)、destroy()、switchClarity()--开关清晰度,通过值“od”、“hd”、“sd”

具体参考上述连接

9.  补充

TcPlayer结合H5<video>和Flash来播放视频。默认情况下,播放器会为不同的播放环境选择更合适的。

虽然浏览器提供商已经开始放弃对Flash widget的支持,但国内大部分浏览器仍然不支持MSE,用户在播放FLV-HLS(m3u8)视频时不能切换到H5<video>播放模式,RTMP视频必须使用Flash模式播放。因此,TcPlayer在默认情况下仍然首先启用Flash播放模式,并且只有在检测到Flash小部件不可用时才使用H5<video>来播放视频。

从版本2.2.0开始,TcPlayer允许用户为回放模式优先级配置属性。如果您喜欢H5<video>播放,您可以将“Flash”属性配置为“false”,这样播放器将默认启用H5<video>播放视频,如果H5<video>不可用,则使用Flash模式。如果未检测到Flash小部件,您将看到一条消息:“当前系统环境不支持此视频格式”。

Listen 事件

TcPlayer结合H5<video>和FLASH来播放视频。但是使用这两种方法播放视频时触发的事件是不同的。在本例中,我们基于H5<video>标准转换FLASH回放事件,以实现统一的回放事件名称。TcPlayer捕获并透明地传输由这两种回放方法触发的本机事件。

直播和点播

直播是指视频源是实时的,一旦主播停播了,这个地址也就失去意义了,而且由于是实时直播,没有进度条

点播只是视频源是一个服务器上的文件,文件只要没有被删除,就可以随时播放,有进度条

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值