Jwplayer是个非常好用的开源网页视频播放器,可以在播放器中下载到jwplayer,在源代码中下载到源代码,它提供丰富的javascript API接口,同时还提供非常多的插件,现在最新的jwplayer已经到了6。

Jwplayer提供插件接口,为jwplayer开发插件只需实现IPlugin接口即可。最近为jwplayer开发了一个截图插件,是基于jwplayer4原来的一个叫snapshot的插件来完成的,现在将实现方法分享给大家:

使用jwplayer截图的主要原理就是使用BitmapData的draw方法对jwplayer的图层(layer)进行绘制,其关键就是找到jwplayer加载媒体”media”的layer,原先的snapshot插件在jwplayer5.x中老是绘出黑屏,就是因为jwplayer5的layer加载发生了变化,要想了解jwplayer的layer加载,可以查看源代码 “src\com\longtailvideo\jwplayer\view\View.as”文件,我使用的是jwplayer5.10,其layer布局为:

RootReference--stage->loaderScreen->loaderAnim

->_root->_maskerLayers->background

->imageLayer

->mediaLayer->_model.media.display

->components->DisplayerComponent

->PlaylistComponent

->DockComponent

->ControlBar

值得说明的是:loaderScreen并不是RootReference. Stage的第一层(index=0),因为在View的completeView方法中,loaderScreen会被删除掉。

这样就可以根据需要,来获取jwplayer的各层layer了,比如想要获取mediaLayer层,则代码为:

Sprite( RootReference.stage.getChildAt(0). getChildAt(0)). getChildAt(2);

说明:------------------_root---------------maskerLayers----mediaLayer---

mediaLayer即为前文中提到的加载媒体”media”的实际的播放层,那么,在jwplayer5.10中实现对所播放的视频进行截图的代码为:

1.引入包:

import com.adobe.images.JPGEncoder;//jpg编码类

import flash.display.*;//BitmapData类

import com.longtailvideo.jwplayer.utils.RootReference;

2.截图

private function Clip(event:MouseEvent):void {

private var bitmap:BitmapData;

private var encoder:JPGEncoder;

encoder = new JPGEncoder(90);

bitmap = new BitmapData(width, height,false,0x000000);

bitmap.draw(videoObject());

encoder.encode(bitmap);

}

private function videoObject():DisplayObject {

var skn:Sprite =  RootReference.stage.getChildAt(0) as Sprite;

var tem:Sprite = Sprite(skn.getChildAt(0)).getChildAt(2) as Sprite;//mediaLayer

return tem as DisplayObject;

};

转载于:https://www.cnblogs.com/xiaoSoldier/archive/2013/01/05/2846129.html

Jwplayer5.10视频拍照(截图)相关推荐

  1. flex+FluorineFx ASP.NET 视频拍照

    声明:此代码为网上代码修改而来,为与FluorineFX配合做了相应修改([Flex视频截图并通过WebService(C#)保存]) Flex代码: <?xml version="1 ...

  2. php 图片生成视频,PHP基于ffmpeg实现转换视频,截图及生成缩略图的方法

    本文实例讲述了PHP基于ffmpeg实现转换视频,截图及生成缩略图的方法.分享给大家供大家参考,具体如下: 这里把ffmpeg 和  生成缩略图整合了一下: include("ImageRe ...

  3. 基于motion视频捕捉软件的树莓派视频拍照系统(图像变化识别+拍照+邮件)

    在果壳看到这篇文章关于树莓派视频拍照系统,就转载过来分享给大家,是很有用的. 本文主要内容摘自本作者的一篇论文,未全部写出,还请见谅.参考文章文末列出.如转载本文,请注明本文出处! 本系统具有无人值守 ...

  4. java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中

    java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中 配置完毕,接下来开始代码编写. 说明 总过程分为两步. 1.配置MinIO的环境. 2.代码编写. 下面 ...

  5. Silverlight实用窍门系列:40.Silverlight中捕捉视频,截图保存到本地

    在Silverlight中我们可以捕捉视频设备以制作视频会议系统,或者通过视频设备截图功能上传头像等功能. 下面我们通过一个简单的实例来访问视频设备,并且截取图像下载该截图文件至本地. 一.在Silv ...

  6. Silverlight实用窍门系列:40.Silverlight中捕捉视频,截图保存到本地【附带实例源码】...

    在Silverlight中我们可以捕捉视频设备以制作视频会议系统,或者通过视频设备截图功能上传头像等功能. 下面我们通过一个简单的实例来访问视频设备,并且截取图像下载该截图文件至本地. 一.在Silv ...

  7. php拍视频上传,php视频拍照上传头像功能实现代码分享

    现在手机拍照很火,那么如何使用手机拍照并上传头像呢?原因很简单,就是数据传递,首先手机传递照片信息,既不是post传递也不是get函数传递,这个另外一种数据 如果要在php中实现视频拍照我们需要借助于 ...

  8. android拍照截图组件,Android_Android实现从相册截图的功能,在这篇文章中,我将向大家展 - phpStudy...

    Android实现从相册截图的功能 在这篇文章中,我将向大家展示如何从相册截图. 先看看效果图: 上一篇文章中,我就拍照截图这一需求进行了详细的分析,试图让大家了解Android本身的限制,以及我们应 ...

  9. android实现截图功能吗,Android实现拍照截图功能

    本文将向大家展示如何拍照截图. 先看看效果图: 拍照截图有点儿特殊,要知道,现在的Android智能手机的摄像头都是几百万的像素,拍出来的图片都是非常大的.因此,我们不能像对待相册截图一样使用Bitm ...

最新文章

  1. 怎样训练YOLOv3
  2. 大厂笔试 java基础
  3. 利用iptables来配置linux禁止所有端口登陆和开放指定端口
  4. 关于comparable与comparator的用法(即自定义集合框架用法 )
  5. c++ 函数模板_C/C++编程笔记:C++入门知识,深入解析C++函数和函数模板
  6. 代理、委托、钩子与打桩
  7. linux fb应用例子,Linux下利用framebuffer画点的程序小例子
  8. android Listview2 笔记
  9. 算法:动态规划算法的最佳实践-背包问题
  10. 【linux】xx is not in the sudoers file 解决办法
  11. php 控制 打印机 打印尺寸_打破常规尺寸,得实推出宽幅条码标签单据打印机新品...
  12. postman下载与汉化
  13. 电脑文件被杀毒软件误删了怎么恢复?
  14. Makefile代码解释
  15. Win10登录界面隐藏其他账户
  16. 沈春华教授加入浙江大学!
  17. 马尔科夫链的一个例子:老鼠迷宫问题
  18. 中国医学计算机成级别像杂志,中国医学计算机成像杂志怎么样,审稿时间
  19. 分式相乘转换成分式加减的一般性方法的简单讨论
  20. 艾宾浩斯记忆曲线——定期、及时复习的重要性

热门文章

  1. Web前端笔记-two.js图形旋转动画的2种实现方式
  2. Android逆向笔记-使用dnSpy修改C#的dll(安卓游戏中使用资源不减反加)
  3. Spring Cloud笔记-Maven构建父子项目
  4. C++笔记-shared_ptr与weak_ptr需要注意的地方
  5. C++设计模式-使用Qt框架采用简单工厂模式实现商城打折满减案例
  6. Python工作笔记-使用Py遍历文件夹及其子文件夹内容
  7. 专业课程设计之客户与服务器程序的同步与通信机制的设计(二)TCP通信
  8. opa847方波放大电路_电子设计竞赛教程-放大器类
  9. mysql sql select for update_mysql SELECT FOR UPDATE语句使用示例
  10. springboot 事务_Spring Boot中的事务是如何实现的?懂吗?