原文地址:https://www.cnblogs.com/jying/p/9519557.html ,转载请说明出处。

ckplayer官网:http://www.ckplayer.com

使用ckplayer 需要引用ckplayer.js,不管你是直接html中引入还是按需加载都必不可少,此处我们以html引入为例

   <script src="你项目的路径/ckplayer.js" charset="UTF-8"></script>

方式一:直接 html 页面 <script> 标签中使用,实例可查看官网:http://www.ckplayer.com/manualX/17.html

方式二:单独 js 文件中使用,形式其实与方式一无异,但切记不可放在 (function(){})() 中使用,否则自定义的监听事件无效。

方式三(推荐):自定义指令 directive 使用。

/**
* 自定义视频指令文件samVideo.ts,相当于app.directive("samVideo",...);
*/
export default class directive implements ng.IDirective {
static $instance = (): ng.IDirective => {
return new directive();
};
constructor() {}
scope = {
video: "=",//来自服务器的视频参数可以放在这
videocb: "=" //回调函数写在这
};
restrict = 'AE'; //属性或控件方式
replace = true;
link(scope: ng.IScope, element: ng.IRootElementService, attrs: any, ctrl: any) {
// console.log("scope = ", scope, scope.video);
if (scope.video) {//判断是否包含视频路径等参数 var ckplayer = window["ckplayer"];//html引入ckplayer.js文件后window中可查看到ckplyer的dom
var videoObject = {
// autoplay: true,//自动执行
container: "#video_view",//绑定容器id
debug: true, //是否开启调试模式
// drag: 'start', //拖动的属性
// flashplayer: true,//强制flash
// loaded: 'loadedHandler', //当播放器加载后执行的函数,设定一些监听,官方js中的写法
loaded: scope.videocb.videocallback(scope.videocb),//此处是重点回调
// loop: true, //播放结束是否循环播放
//mobileCkControls:true,//是否在移动端(包括ios)环境中显示控制栏
//poster: 'o_1cku5daia5vroa4psl17pipm5m.jpg', //封面图片
// seek: 0, //默认跳转的时间
variable: "player",//初始函数
// video: "CK:" + scope.video.video_url,//加密后强制变为flash方式,无法在移动端观看视频,移动端不支持flash。
video: scope.video.video_url //来自服务器的视频地址
} var player = new ckplayer(videoObject);
scope.videocb.player = player; }
};
}
<sam-Video id="video_view" style="width:100%;" ng-if="vm.videoDetails" video="vm.videoDetails" videocb="vm.videocb"></sam-Video>
   //在Controller中
//参数的定义回调
//定义视频对象,可以来自服务器
videoDetails = {
content: "测试外网视频",
create_date: 1534316308000,
img_url: "o_1cku5ia5vroa4psl17pipm5m.jpg",//封面图片
title: "外网视频",
video_url: "视频地址.mp4 或CK:加密的视频地址(强制flash模式)"//视频地址
};
//回调参数,里面定义了一个回调函数,然后由directive回调的时候回传ckplayer对象own,并使用$timeout延迟加载以确保不为null
videocb = {
videocallback: (own) => {
if (this.timeout) {
this.$timeout.cancel(this.timeout);
}
this.timeout = this.$timeout(x => { // console.log("timeout player = ", this.videocb["player"], own.player);
own.player.addListener('ended', this.endedHandler); //监听播放结束 }, 0);
// console.log("player = ", this.videocb, player.player.CB);
}
};
//监听是否结束播放,使用lambda表达式可以使用整个controller的this
endedHandler = () => {
console.log("播放结束2", this);
}

移动端浏览器播放视频会自动全屏,无法限制其拖动快进,可以参照我的另一篇文章解决:https://www.cnblogs.com/jying/p/9642445.html

个人小站欢迎来踩:驾校教练评价平台 | 为爱豆砌照片墙

angular中使用ckplayer播放器的更多相关文章

  1. ckplayer播放器去掉右边的开关灯分享插件

    在上一篇文章中介绍了如何使用ckplayer播放器,但是有的人不需要CK播放器右边的开关灯分享插件,那么就需要把该插件给去掉,方法也很简单. 第一步:先打开ckplayer.js里找到下面三行删除掉 ...

  2. Angular 个人深究(一)【Angular中的Typescript 装饰器】

    Angular 个人深究[Angular中的Typescript 装饰器] 最近进入一个新的前端项目,为了能够更好地了解Angular框架,想到要研究底层代码. 注:本人前端小白一枚,文章旨在记录自己 ...

  3. 夺命雷公狗---微信开发59----在线点播电影网1之ckplayer播放器

    我们节课程就要开始写一个小项目了,这项目主要是写一个在线点播电影影网的,我们用到的播放器是ckplayer ckplayer基本介绍: ckplayer的全称是:超酷flv播放器,他是一款用于网页上播 ...

  4. 使用html5中video自定义播放器必备知识点总结以及JS全屏API介绍

    一.video的js知识点: controls(控制器).autoplay(自动播放).loop(循环)==video默认的: 自定义播放器中一些JS中提供的方法和属性的记录: 1.play()控制视 ...

  5. 驳Linux不娱乐 堪比Win平台中十款播放器

    播放器在我们日常生活中扮演着非常重要的角色,在Windows操作系统中,播放器被应用的非常广泛,不但我们可以听音乐,甚至还可以听广播,制作铃声,下载音乐等等.而在Linux发行版中,缺少娱乐性一直性W ...

  6. vue+element-ui中引入阿里播放器

    1.在public文件下的index.html文件中插入以下代码: <link rel="stylesheet" href="https://g.alicdn.co ...

  7. [JS] 动态修改ckPlayer播放器宽度

    //设置播放器宽度var play_width=0;$(function(){ play_width = $(window).width() - $(".stu-video-r") ...

  8. dskms改为ckplayer播放器

    将ckplayer代码文件夹上传到/var/www/html/public/static/plugins/目录下修改/var/www/html/application/home/view/defaul ...

  9. angular2或angular4中使用ckplayer播放rtmp和m3u8视频直播流

    1. 下载ckpalyer整个包并导入, 将ckplayer放到src/assets/下 2. 引入ckplayer.js angular2中,在angular-cli.json中找到script,添 ...

随机推荐

  1. 本地Debug Asp.net MVC 无法加载css与js

    运行一个从网上download的一个MVC项目,运行的时候无法显示样式,js也报错. 检查路径也没有问题,后来在配置中把其中的一段配置去掉 <staticContent> <!-- ...

  2. es6学习日记4

    数组的扩展 扩展运算符是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]) // 1 2 3 console.l ...

  3. oracle-组件vault

    ===================== lsnrctl stopshutdown immediate;emctl stop dbconsolecd $ORACLE_HOME/rdbms/libma ...

  4. [ZZ] UIUC同学Jia-Bin Huang收集的计算机视觉代码合集

    UIUC同学Jia-Bin Huang收集的计算机视觉代码合集 http://blog.sina.com.cn/s/blog_4a1853330100zwgm.htmlv UIUC的Jia-Bin H ...

  5. 为嵌入式全志V3s荔枝派板卡添加USB MT7601U(小米随身WIFI)驱动

    折腾了了一天终于scan出环境热点了,感觉本来挺简单的事情,网上教程一大把还费了一天的劲,很丧.不过网上教程虽多,但是还还是有些不同之处的,现在特意总结一下 全志V3s荔枝派板卡 添加该驱动的过程. ...

  6. PHP 获取数组是几维数组

    // 判断数组是几维数组$data = array(); // 是你要判断的数组$al = array(0);function aL($data,&$al,$level=0){ if(is_a ...

  7. ubuntu16.04下docker安装和简单使用

    前提条件 操作系统 docker-ce支持的ubuntu版本: Bionic 18.04 (LTS) Xenial 16.04 (LTS) Trusty 14.04 (LTS) 卸载旧版本docker ...

  8. Angular2中使用ngx-translate进行国际化

    转自 https://blog.csdn.net/u014291497/article/details/61233033 相较于angularjs中的ng-translate, angular2也有适 ...

  9. android AES 加密解密

    import java.security.Provider; import java.security.SecureRandom; import javax.crypto.Cipher; import ...

  10. 上线啦,PP.io!

    经过我们PPIO团队成员们在20天零13小时零14分的辛勤努力下,我们的官网终于上线了!   是的,14年前我们就是东半球第一个P2P技术团队.我们的征程始于2004年春天一个温暖的午后.寝室里笨拙的 ...