Web播放器__视频播放_使用手册_媒体转码-阿里云
Prismplayer是一套在线视频播放技术方案,同时支持Flash和Html5两种播放技术,可对播放器进行功能配置和皮肤定制。
支持格式
Flash 模式:
- 视频格式: mp4、flv、m3u8、rtmp、mp3
- 视频编码: H.264
- 音频编码: AAC、MP3
HTML5 模式:
- 视频格式: mp4、m3u8
- 视频编码: H.264
音频编码: AAC
m3u8格式播放依赖调用端浏览器支持情况:iOS全系列支持,Android 4.0及以上版本支持。
在线定制
媒体转码控制台提供了播放器的定制功能,提供Flash、Html5以及自适应三种基于prismplayer的播放器。
播放器详细说明
资源文件
Prismplayer不依赖于任何的前端js库,只需要在页面中引用如下js文件,就可以进行播放器的初始化:
https://g.alicdn.com/de/prismplayer/1.5.4/prism-min.js
这个文件同时包含了Flash和Html5跨终端自适应的逻辑。如果您只是想使用其中一种播放技术,也可以只引用对应技术的js文件,从而获得更小的文件体积:
Flash版本:
https://g.alicdn.com/de/prismplayer/1.5.4/prism-flash-min.js
Html5版本:
https://g.alicdn.com/de/prismplayer/1.5.4/prism-h5-min.js
如果您的使用场景需要用到html5播放器,请额外引用css文件:
https://g.alicdn.com/de/prismplayer/1.5.4/skins/default/index-min.css
一个简单的使用实例
提供一个最简单的使用实例,初始化播放器,监听某个dom元素的点击事件来触发调用播放器的接口方法,同时对播放器暴露的事件进行监听。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>测试页面</title>
<link rel="stylesheet" href="//g.alicdn.com/de/prismplayer/1.5.4/skins/default/index.css" />
<script type="text/javascript" src="//g.alicdn.com/de/prismplayer/1.5.4/prism-min.js"></script>
</head>
<body>
<div id="J_prismPlayer" class="prism-player"></div>
<!— prism-player为h5播放器皮肤的钩子类名,请务必加上 —>
<button id="J_clickToPlay" type="button">播放</button>
<script>
// 初始化播放器
var player = new prismplayer({
id: "J_prismPlayer", // 容器id
source: "https://cloud.video.taobao.com/play/u/2554695624/p/1/e/6/t/1/fv/102/28552077.mp4",// 视频地址
autoplay: false, //自动播放:否
width: "100%", // 播放器宽度
height: "400px" // 播放器高度
});
var clickDom = document.getElementById("J_clickToPlay");
clickDom.addEventListener("click", function(e) {
// 调用播放器的play方法
player.play();
});
// 监听播放器的pause事件
player.on("pause", function() {
alert("播放器暂停啦!");
});
</script>
</body>
播放器配置属性
id,{String},播放器外层容器的dom元素id
source, {String}, 视频播放地址url(1)单独url;(2)支持多码流切换:
source:'{"UD":"url_UD","HD":"url_HD","SD":"url_SD","LD":"url_LD"}'
,暂时支持hls与flv(mp4暂未开放);width,{String},播放器宽度,可形如’100%’或者’100px’
height,{String},播放器高度,可形如’100%’或者’100px’
preload,{Boolean},播放器自动加载,目前仅h5可用
cover, {String}, 播放器默认封面图片,请填写正确的图片url地址
isLive,{Boolean},播放内容是否为直播,直播时会禁止用户拖动进度条
autoplay,{Boolean},播放器是否自动播放,html5受浏览器限制,大多数情况下该配置会失效
from,{String},来源标识,可自定义,主要用于日志记录数据收集(
建议用户填入自己业务名称,便于后续播放量统计
)。trackLog, {Boolean},是否需要进行用户行为日志打点,默认为
true
skinRes,{Url},皮肤图片,不建议随意修改该字段,如要修改,请参照Web播放器皮肤定制
skinLayout,{Array | Boolean},功能组件布局配置,不传该字段使用默认布局,传false隐藏所有功能组件,功能与皮肤定制方法请看下一节
notShowTips,{Boolean},不显示控制Tips(按钮提示)
showBarTime,{String},控制栏自动隐藏时间(ms)
waterMark,{url|pos|size|alpha},添加水印,目前仅支持flash,
url
:水印图片(jpg/png);pos
:位置(TL/TR/BL/BR);size
: logo宽度占播放器比例(0-1,默认0.2);alpha
:透明度(0-1,默认1)。示例:waterMark:"logo.jpg|TL|0.15|0.5"
extraInfo,{“a_key”:”a_value”,”b_key”:”b_value”},类型为json串,定制性接口参数,目前支持
"fullTitle":"测试页面", //全屏时显示视频标题(目前仅flash支持);
"m3u8BufferLength":"30", //播放m3u8时加载缓存ts文件长度(目前仅flash支持);
"liveStartTime":"2016/08/17 12:00:00", //直播开始时间,用于提示直播未开始(目前仅flash支持);
"liveStopTime":"2016/08/17 14:00:00", //直播结束时间,用于提示直播结束(目前仅flash支持);
"liveRetry":1, //直播流中断是否重试;
播放器定制
prismplayer使用skinRes
和skinLayout
两个配置项实现播放器功能与皮肤的定制。
skinRes提供了播放器使用的皮肤图片地址,我们在实现层面上对皮肤图片进行预处理,从而提取出各个功能组件的ui皮肤和尺寸。
skinLayout的配置方式一般如下:
skinLayout: [
{
"name":"bigPlayButton",
"align":"blabs",
"x":30,
"y":80
},
{
"name":"controlBar",
"align":"blabs",
"x":0,
"y":0,
"children":[
{
"name":"progress",
"align":"tlabs",
"x":0,
"y":0
}
]
}
]
skinLayout
中的每一个元素表示一个功能组件的配置,播放器只会初始化进行了配置的功能组件。每个功能组件有以下配置项:
name,{String},功能组件的名称,目前可用的组件列表请见下文
align,{String},组件相对于父级组件的对齐方式,可选项有:
'cc'
,相对于父组件绝对居中'tl'
,相对于父组件左上对齐,受同级组件的占位影响,以组件的相对位置左上角作为偏移原点,可类比于css中的float: left'tr'
,相对于父组件右上对齐,受同级组件的占位影响,以组件的相对位置右上角作为偏移原点,可类比于css中的float: right'tlabs'
,相对于父组件左上绝对对齐,不受同级组件的占位影响,以父组件左上角作为偏移原点'trabs'
,相对于父组件右上绝对对齐,不受同级组件的占位影响,以父组件右上角作为偏移原点'blabs'
,相对于父组件左下绝对对齐,不受同级组件的占位影响,以父组件左下角作为偏移原点'brabs'
,相对于父组件右下绝对对齐,不受同级组件的占位影响,以父组件右下角作为偏移原点
x,{Number},水平方向偏移量,偏移原点参考
align
的说明,cc
时无效y,{Number},垂直方向偏移量,偏移原点参考
align
的说明,cc
时无效children,{Array},组件的子组件列表
播放器功能组件
bigPlayButton,大播放按钮
controlBar,控制面板
progress,播放进度条
playButton,播放按钮,默认从属于
controlBar
timeDisplay,播放时间,默认从属于
controlBar
fullScreenButton,全屏按钮,默认从属于
controlBar
setButton,设置按钮,默认从属于
controlBar
,只有flash生效volume,音量控制,默认从属于
controlBar
fullControlBar,全屏顶部面板,只有flash生效
fullTitle,视频标题,默认从属于
fullControlBar
,只有flash生效fullNormalScreenButton,取消全屏按钮,默认从属于
fullControlBar
,只有flash生效fullTimeDisplay,全屏下当前时间,默认从属于
fullControlBar
,只有flash生效fullZoom,屏幕缩放,默认从属于
fullControlBar
,只有flash生效
skinLayout支持树形的嵌套定义,从实现上支持各个组件的嵌套关系和顺序调整。但我们约定controlBar
和fullControlBar
才允许二级嵌套。同时,在完全开放定制功能之前,我们也不建议您过度修改skinLayout
,当前版本我们仅对外提供功能组件的显示隐藏定制。
播放器API
play(),播放视频
pause(),暂停视频
seek(time),跳转到某个时刻进行播放,
time
的单位为秒getCurrentTime(),获取当前的播放时刻,返回的单位为秒
getDuration(),获取视频总时长,返回的单位为秒
getVolume(),获取当前的音量,返回值为0-1的实数,ios和部分android会失效
setVolume(vol),设置音量,
vol
为0-1的实数,ios和部分android会失效loadByUrl(url,time),直接播放视频
url
,time
为可选值(单位秒)目前只支持同种格式(mp4/flv/m3u8)之间切换,暂不支持直播rtmp流切换setPlayerSize(w,h),设置播放器大小,
w
,h
可分别为400px
像素或60%
百分比,chrome浏览器下flash播放器分别不能小于397x297
播放器对外事件
ready,播放器初始化完毕可以播放视频时触发
uiReady,播放器初始化按钮渲染完毕(播放器UI初始设置需要此事件后触发,避免UI被初始化所覆盖)
play,视频由暂停恢复为播放时触发
pause,视频暂停时触发
ended,当前视频播放完毕时触发
liveStreamStop,直播流中断时触发,m3u8/flv/rtmp在重试5次未成功后触发,提示上层流中断或需要重新加载视频(PS:m3u8一直自动重试,不需要上层添加重试)
m3u8Retry,m3u8直播流中断后重试事件,每次断流只触发一次
hideBar,控制栏自动隐藏事件
如果问题还未能解决,请联系售后技术支持。
最后更新:2016-12-14 16:19:03
上一篇:
控制台使用帮助__使用手册_媒体转码-阿里云
下一篇:
Web播放器皮肤定制__视频播放_使用手册_媒体转码-阿里云
8.4 使用阿里云数据传输实时同步RDS的数据__第八章 在生产中使用分析型数据库_使用手册_分析型数据库-阿里云
权限查看__用户及授权管理_安全指南_大数据计算服务-阿里云
步骤2:填写资料__快速入门_证书服务-阿里云
概览页介绍__用户指南_企业级分布式应用服务 EDAS-阿里云
获取队列列表__队列使用帮助_控制台使用帮助_消息服务-阿里云
AttachPolicyToUser__授权策略管理接口_RAM API文档_访问控制-阿里云
为什么返券无法使用?___储值卡_代金券及推荐码_财务-阿里云
客户端工具__周边工具_表格存储-阿里云
快速回滚方式__用户手册_持续交付平台-阿里云
版本说明__JavaSDK手册_SDK参考手册_开放搜索-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云