flv f4v mp4 视频播放器代码
flv f4v mp4 视频播放器代码
ckplayer 是一款在网页上播放视频的免费的播放器,功能强大,体积小巧,跨平台,使用起来随心所欲。 播放器主要以adobe的flash(所使用的版本是CS5)平台开发,所以在支持flash插件的平台和浏览器上都可以使用,而无需下载其它插件,如果你需要修改完整版里提供的相关的flash源文件,请使用adobe的flash cs5以上版本打开源文件修改。 ckplayer同时也支持html5的视频播放,即同时可以在Ipad,Iphone等IOS平台上播放视频,并且只需简单代码就可以使用,无需了解html5插入视频的方法。 软件在对各平台的兼容性方面适应性比较强,比如你可以设置在Android平台或wp平台上在用户已安装flash插件的时候使用flash播放器,在没有装flash插件的情况下使用html5播放器。 ckplayer是一种前台使用的程序,不涉及到服务器程序(asp,php,jsp,.net),也不涉及到对服务器的操作(即不需要写入权限),所以不存在安全方面的问题。同时可以集成在任何程序中,包括asp,php,jsp,.net以及其它支持插入flash的环境中。 功能列表: 兼容SWF/HTML5跨平台播放 支持流行视频格式flv,f4v,mp4, 支持html5格式m3u8,webm,ogg theora,mp4 支持RTMP协议下的视频直播和回放 支持前置广告(swf,图片,视频) 支持前置广告多个随机/顺序播放 支持暂停广告(swf,图片)多个随机播放 支持缓冲广告,小窗口广告,滚动文字广告 支持多达6种形式的视频地址调用方式 支持多段视频无缝播放,支持多集连播 支持视频预览功能 自定义提示点功能,跳过片头片尾功能 bshare完美视频分享功能 调节视频尺寸,亮度,对比度,色相,饱和度功能 支持播放结束显示精彩视频推荐 支持自定义播放器界面,无需了解程序,即可自己制作出风格 支持js和播放器的互动操作,可以任意控制播放器的动作,比如暂停/播放 丰富的api接口,快速打造功能强大的插件
安装方法及环境需求
安装很简单,只要你有网站的空间或服务器,直接把ckplayer文件夹(该目录下应该是包括ckplayer.swf的,而不是包括index.htm的)放在你网站根目录下,使用下面介绍的方法调用,请注意,跟你网站使用的什么环境和程序语言没有任何关系。就相当于一个js文件一样使用即可。
本教程涉及到以下各点,点击对应标题页面将直接滑动到相应内容:
1:文件选择方案(根据不同的需求选择部份或全部文件)
2:调用方式一:embed简单调用方式,只能调用Flash播放器
3:调用方式二(1):使用ckplayer提供的js函数CKobject,兼容Flash+HTML5(推荐)
4:调用方式二(2):使用js函数CKobject只调用Flash播放器(推荐)
5:调用方式二(3):使用js函数CKobject只调用HTML5播放器(推荐)
6:HTML5播放器对视频格式的要求
7:RTMP视频的调用及相关说明
8:调用方式三:使用adobe提供的js函数swfobject(不推荐)
9:flashvars里各参数的功能介绍
10:调用视频地址方式一:普通调用
11:调用视频地址方式二:网址形式调用
12:调用视频地址方式三:xml格式调用
13:调用视频地址方式四:用flash插件调用
1
文件选择方案(根据不同的需求选择部份或全部文件)
方案一:如果只需要调用一个视频播放器播放视频,不需要分享功能,开关灯功能,调节亮度功能,也不需要交互功能,也不需要html5的功能,那么你的ckplayer文件夹里只需要保留以下四个文件即可
方案二:如果你需要交互(或需要html5下的视频播放),但是不需要分享,可以只保留以下文件
方案三:保留全部文件,可以使用全部功能
2
调用方式一:embed简单调用方式,只能调用Flash播放器
我们先看下面这段引用播放器的代码,你会发现,这就跟调用普通的swf文件是一样的,唯一的不同点就是多了一个flashvars参数。
关于该调用方式的说明和相关知识点:
embed: 是调用浏览器插件的标志,并不是只用来调用swf文件,还包括其它的一些插件,但我们这里是用来调用swf文件的,在html中,很多标志是需要成对出现的,比如这里,有开头的标志,就要有结束的标志。
src: 表示播放器的路径
flashvars: 表示向播放器里插入的变量名称和值,以上的代码,表示向播放器里传递了一个f变量,值是http://movie.ks.js.cn/flv/other/01.mp4,播放器会读取到这个变量和值进行处理,flashvars不仅仅只能传递一个变量,而是可以传递多个变量的,各个变量用&符号相分隔,比如 flashvars="a=1&s=2&x=" 向播放器里传递了三个值,其中x的值为空。
quality: 该值是设置播放器的质量和速度之间的选择用的,可以直接忽略,不看,用默认的就行,下面列出该参数各种值的意思,仅供了解
Low 速度优于美观,而且不应用反锯齿。
Autolow 刚开始着重于速度,但当需要时随时提升美观。
Autohigh 同时着重播放速度和美观,但需要时则牺牲美观来保证播放速度。
Medium 应用一些反锯齿而不平滑位图。它质量高于low设置而低于high设置。
High 美观优于播放速度,而且一直应用反锯齿。如果影片不包含动画,位图会被平滑化;而如果影片包含动画,位图将不变平滑。
Best 提供最好的显示质量而不考虑播放速度。所有输出都应用反锯齿及所有位图都被平滑化。
width: 定义播放器的宽,单位是像素
height: 定义播放器的高
align: 这是定义swf中的控制面版对齐方式,无视这个参数,用默认即可
allowScriptAccess: 这是一个很重要的参数,因为这里可以设置允许或禁止swf文件和页面中的js交互,各种值的意思如下:
always 允许随时执行脚本操作。
never 禁止所有脚本执行操作。 samedomain 只有在 Flash 应用程序来自与 HTML 页相同的域时才允许执行脚本操作。
很多分享出去的视频,你会发现无法点击广告或精彩视频推荐或分享到微博的按钮,都是因为这里的值设置成了never或samedomain,禁止了交互功能,当然这也是为安全考虑
allowFullscreen: 是否允许播放器全屏,设置成false时,点击全屏按钮也不能全屏
type: 插件的类型,在浏览器中每种插件都有其固定的名称
wmode: 是控制播放器是否是透明背景的参数,在设置成wmode="transparent"时不仅仅可以使之背景透明,而且还可以使得该播放器位于其它页面元素之下。不会遮挡到其它元素。该参数在有些情况下很有用处。
3
调用方式二(1):使用ckplayer提供的js函数CKobject,兼容Flash+HTML5(推荐)
CKobject函数是ckplayer提供的一个调用播放器的函数,可以很好的兼容集成Flash播放器和HTML5播放器。
下面是一个简单的调用播放器的代码示例,注意在调用前要引入ckplayer.js,下面为已引入的调用代码:
上面的代码每一行的意思以及每一个参数的意思解释如下:
1:
播放容器,即播放器最后将动态的在这里进行加载,容器的id="a1"
2:
这一行是引入播放器的js配置文件,因为Ckobject函数就是写在这个文件里,要注意src的路径要正确,不然则调用错误
3:
这是html里执行javascript(缩写:js)代码的标志,需要跟(代码第14行已有)成对出现
4-8:var flashvars={};
这是js里定义对象的代码。这里定义了一个对象,这个对象是用来保存设置播放器里初始化时相关的配置,比如f值是定义(使用flash播放器时)视频地址的。c值是定义播放器调用ckplayer/ckplayer.js中的ckstyle()函数做为风格配置参数,p:1是定义该视频默认直接播放。如果是p:0则视频默认暂停
9:var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always',wmode:"transparent"};
该参数只有Flash播放器用到,这里也定义了一个对象,是设置播放器相关属性的。bgcolor是播放器的背景颜色,allowFullScreen是是否允许全屏,allowScriptAccess是否允许播放器跟页面中的js进行交换,wmode是设置播放器是否透明
10:var video=['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4'];
定义html5视频所用到的视频地址的一个数组,为了适应不同的浏览器和平台,建议该数组增加更多的视频格式。如官方首页设置的样式
var video=['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4','http://www.ckplayer.com/webm/0.webm->video/webm','http://www.ckplayer.com/webm/0.ogv->video/ogg'];
上面的代码演示了调用三种视频格式的方法,分别调用了mp4,webm,ogg三种视频格式,当然还可以增加另外的视频格式如m3u8 要注意的是,html5方面调用视频地址时的格式,正常的是:视频地址->视频格式,比如当视频是mp4格式时,后面需要说明:video/mp4,如果是m3u8的可以直接放地址,不需要加上->video/m3u8
关于这个参数还有另外的一种调用方式是使用网址形式的调用。代码如下:
var video=['http://www.ckplayer.com/1.php?a=2->ajax/get/utf-8'];
上面的代码是指将从http://www.ckplayer.com/1.php?a=2这个地址读取视频地址传递给html5播放器使用,该页面地址的源代码里只需要输出一个正确的视频地址即可。不需要有其它内容,示例:
http://www.ckplayer.com/webm/1_0.mp4->audio/mp4,http://www.ckplayer.com/webm/0.webm->video/webm,http://www.ckplayer.com/webm/0.ogv->video/ogg
当然也可以地址前面加上相关的参数比如
{p->1}http://www.ckplayer.com/webm/1_0.mp4->audio/mp4,http://www.ckplayer.com/webm/0.webm->video/webm,http://www.ckplayer.com/webm/0.ogv->video/ogg
->后面的各个参数的意思如下:
ajax:使用无刷新读取网址形式调用视频地址
get:使用get方法传递参数,另外的还有一个post方法
utf-8:是该地址的网页编码是utf-8的,其它的还有如gb2312
11:CKobject.embed('ckplayer/ckplayer.swf','a1','ckplayer_a1','600','400',false,flashvars,video,params)
该行代码是开始调用播放器,一共9个参数,你也可以把最后一个参数去掉。 括号里面的参数的意思分别是 1、播放器swf文件路径,注意,该路径一定要正确 2、播放器id,不管最后页面上显示的是Flash播放器还是HTML5播放器,ID都是相同的 3、播放器宽度,可以设置成百分比形式 4、播放器高度,可以设置成百分比形式
5、优先使用值,默认false,优先使用Flash播放器,即在用户装了Flashplayer插件并且版本在11以上的情况下会调用Flash播放器播放,true=优先使用HTML5播放器。建议设置成false 6、Flash视频地址及初始化配置(上面定义的var flashvars={}) 7、HTML5所用到的视频地址(上面定义的var video={}) 8、当环境使用Flash播放器时的配置,该项可以省略,因为CKobject函数本身默认的就是上面的配置。
12:
调用播放器结束
4
调用方式二(2):使用js函数CKobject只调用Flash播放器(推荐)
注意在调用前要引入ckplayer.js,下面为已引入的调用代码:
上面的代码每一行的意思以及每一个参数的意思解释如下:
1:
播放容器,即播放器最后将动态的在这里进行加载,容器的id="a1"
2:
这一行是引入播放器的js配置文件,因为Ckobject函数就是写在这个文件里,要注意src的路径要正确,不然则调用错误
3:
这是html里执行javascript(缩写:js)代码的标志,需要跟(代码第14行已有)成对出现
4-8:var flashvars={};
这是js里定义对象的代码。这里定义了一个对象,这个对象是用来保存设置播放器里初始化时相关的配置,比如f值是定义视频地址的。c值是定义该播放器调用ckplayer/ckplayer.js中的ckstyle()函数做为风格配置参数,p:1是定义该视频默认直接播放。如果是p:0则视频默认暂停
9:var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always',wmode:"transparent"};
这里也定义了一个对象,是设置播放器相关属性的。bgcolor是播放器的背景颜色,allowFullScreen是是否允许全屏,allowScriptAccess是否允许播放器跟页面中的js进行交换,wmode是设置播放器是否透明
10:CKobject.embedSWF('ckplayer/ckplayer.swf','a1','ckplayer_a1',600,400,flashvars,params);
该行是调用swf播放器的代码 CKobject函数里embedSWF是调用swf播放器的,下面的embedHTML5是调用html5播放器的
该函数里默认有7个参数,分别对应的意思如下
1:swf播放器路径,请注意要填写正确的路径
2:播放器放置的容器,这里即上面的
3:播放器的id和name值,这里设置的是ckplayer_a1
4:播放器的宽
5:播放器的高
6:flashvars的值,该值是向播放器里传递视频地址之类参数的(对象)变量,在4-8行定义了该变量,这里只是引用
7:params,该参数即第9行定义的变量。
11:
调用播放器结束
5
调用方式二(3):使用js函数CKobject只调用HTML5播放器(推荐)
注意在调用前要引入ckplayer.js,下面为已引入的调用代码:
上面的代码每一行的意思以及每一个参数的意思解释如下:
1:
播放容器,即播放器最后将动态的在这里进行加载。
2:
这一行是引入播放器的js配置文件,因为Ckobject函数就是写在这个文件里,要注意src的路径要正确,不然则调用错误
3:
这是html里执行javascript(缩写:js)代码的标志,需要跟(代码第14行已有)成对出现
4-8:var flashvars={};
这是js里定义对象的代码。这里定义了一个对象,这个对象是用来保存设置播放器里初始化时相关的配置,在HTML5里该参数只有三个值可以使用:分别是
p:该值是控制播放器默认是否播放的,0=默认暂停,1=默认播放,2=默认不加载视频,用户点击后才会继续加载,当然该设置=1时并不能保证默认就能播放,因为在有些手机或IOS设备由于考虑到用户设置和手机默认的HTML5方面的设置。即使设置成1也需要等用户点击才会加载。
e:播放完成后的动作,0=调用js函数(默认是调用playerstop()),=1时是循环播放,=2或=3是暂停
9: var video=['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4'];
定义html5视频所用到的视频地址的一个数组,为了适应不同的浏览器和平台,建议该数组增加更多的视频格式。如官方首页设置的样式
var video=['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4','http://www.ckplayer.com/webm/0.webm->video/webm','http://www.ckplayer.com/webm/0.ogv->video/ogg'];
上面的代码演示了调用三种视频格式的方法,分别调用了mp4,webm,ogg三种视频格式,当然还可以增加另外的视频格式如m3u8 要注意的是,html5方面调用视频地址时的格式,正常的是:视频地址->视频格式,比如当视频是mp4格式时,后面需要说明:video/mp4,如果是m3u8的可以直接放地址,不需要加上->video/m3u8
关于这个参数还有另外的一种调用方式是使用网址形式的调用。代码如下:
var video=['http://www.ckplayer.com/1.php?a=2->ajax/get/utf-8'];
上面的代码是指将从http://www.ckplayer.com/1.php?a=2这个地址读取视频地址传递给html5播放器使用,该页面地址的源代码里只需要输出一个正确的视频地址即可。不需要有其它内容,示例:
http://www.ckplayer.com/webm/1_0.mp4->audio/mp4,http://www.ckplayer.com/webm/0.webm->video/webm,http://www.ckplayer.com/webm/0.ogv->video/ogg
当然也可以地址前面加上相关的参数比如
{p->1}http://www.ckplayer.com/webm/1_0.mp4->audio/mp4,http://www.ckplayer.com/webm/0.webm->video/webm,http://www.ckplayer.com/webm/0.ogv->video/ogg
->后面的各个参数的意思如下:
ajax:使用无刷新读取网址形式调用视频地址
get:使用get方法传递参数,另外的还有一个post方法
utf-8:是该地址的网页编码是utf-8的,其它的还有如gb2312
10:var support=['iPad', 'iPhone', 'ios'];
定义一个(数组)变量来设置在哪些平台或浏览器中使用html5播放器,以下列出了该数组可以定义的数值以及对应的平台
数组内容
作用
all
所有平台都使用htmll5
all+false
所有不支持flash的平台都使用html5
iPhone
iPhone
iPad
iPad
ios
ios终端
android
android 终端或者uc浏览器
trident
IE内核
presto
opera内核
webKit(可加上版本号:如webKit5)
苹果、谷歌内核
gecko (可加上版本号:如gecko10)
火狐内核
mobile (可加上版本号:如webKit5)
移动终端
webApp
web应该程序
msie (可加上版本号:如msie10)
IE浏览器
使用方法举例
var support=['all'];所有的平台都使用html5
var support=['all+false'];//所有的不支持flash或没安装flash插件的平台上都使用html5
var support=['android +false','iPad'];//在iPad上使用html5,在android(安卓)上没有安装flash插件的情况下使用html5
11:CKobject.embedHTML5('a1','ckplayer_a1',600,400,video,flashvars,support); 括号里面的参数的意思分别是 1、视频容器id 2、播放器id 3、宽度 4、高度 5、视频地址 6、相关设置 7、支持的平台
12:
调用播放器结束
var video=[],这是一个数组类型,里面可以放多个视频(格式)地址,这样设置的原因是因为在不同的环境(终端)并不是只支持同一的视频格式的,虽然mp4视频能在大部分的终端使用。但有些终端并不能播放mp4,但有可能会支持其它格式的视频,如webm,ogg等,有关于各终端支持的视频格式如下说明:
浏览器/平台
HTML5支持的视频格式
flash支持的视频格式
Chrome
MP4, WebM
Flv,F4v,Mp4
Firefox
WebM
Flv,F4v,Mp4
Internet Explorer
MP4
Flv,F4v,Mp4
Safari
MP4
Flv,F4v,Mp4
iOS
MP4,m3u8
不支持
Android
MP4,m3u8
Flv,F4v,Mp4
Opera
WebM,m3u8
不支持
IPad
MP4,m3u8
不支持
Iphone
MP4,m3u8
不支持
在ckplayer中,视频的格式是智能判断的。所以rtmp视频调用的方式跟任何调用普通视频的方法是一样的(在HTML5环境中不同,HTML5是不支持播放rtmp视频流的,需要把直播视频流打包成m3u8格式,有关于怎样将rtmp打包成m3u8以支持非pc终端的方法请自行搜索)。
下面是一个实例,注意,html5部分的m3u8地址是一个不可以访问的地址,只是做个示例而已
f值里的就是一个rtmp视频流地址,请注意格式,rtmp://ip/live(流地址)/livestream(实例名称)
如果是多级目录,比如地址是rtmp://localhost/vod/ab/c的。在ckplayer里播放的话,需要修改二个地方,
一个是修改ckplayer.js和ckplayer.xml里的ck.pm_spac = '|';改成ck.pm_spac = ',';总至不能用|,用其它的任何符号都能,此时的|我们需要在地址里做为区分rtmp的协议和实例名称
二是调用视频地址时修改f:'rtmp://localhost/vod/ab/c'为rtmp://localhost/vod|ab/c
这样就可以了,注意竖线前面是地址,后面是实例名称
这方法针对多级目录的rtmp有效
如果是使用red5搭建的rtmp播放环境或使用自己的程序搭建的rtmp环境,还需要注意设置ckplayer.js里的setup:''值(ckplayer.xml里的 )的第23个参数,设置成0,因为播放器在连接服务器的时候有时会收到一个断开信号,但是因为是基于rtmp协议的,会自动等待连接,无需重复请求连接,重复请求倒会导致不能连接上服务器
另外还要注意ckplayer.js里setup:''值(ckplayer.xml里的 )的第13个参数,播放器的缓冲时间设置不能高于你服务器设置的缓冲时间。
lv值的意思,当设置成1是,播放器会认为此时是在播放直播放,不会在时间处显示已播放时间和总时间,并且会锁定进度栏和快进快退按钮
8
调用方式三:使用adobe提供的js函数swfobject(不推荐)
adobe的swfobject函数是一个比较强大的调用swf文件的函数,但是因为如下原因,ckplayer官方在6.4以后不再提供该函数
1:该函数文件比较大
2:不兼容HTML5
3:很多用户本身自己网站里已存在该函数
如果你想使用该函数调用播放器,请自行下载
下面以swfobject2.2为例调用播放器,因为是兼容了html5,所以下面的示例中也使用了CKobject
调用代码如下:
上面的代码每一行的意思以及每一个参数的意思解释如下:
1:
播放容器,即播放器最后将动态的在这里进行加载,这是有二个容器嵌套使用的,外面的容器的id="video",里面的容器的id="a1"
为什么要放二个容器的,其实理论上用CKobject函数调用是不需要二个容器的,但是因为如果你是使用的swfobject调用的话就需要了。便于控制。
id="a1"的容器主要用来装载swf播放器
id="video"的容器主要用来装载html5的播放器
2:
这一行是引入播放器的js配置文件,因为Ckobject函数就是写在这个文件里,要注意src的路径要正确,不然则调用错误
3:
这是html里执行javascript(缩写:js)代码的标志,需要跟(代码第15行已有)成对出现
4-8:var flashvars={};
这 是js里定义对象的代码。这里定义了一个对象,这个对象是用来保存设置播放器里初始化时相关的配置,比如f值是定义视频地址的。c值是定义该播放器调用 ckplayer/ckplayer.js中的ckstyle()函数做为风格配置参数,p:1是定义该视频默认直接播放。如果是p:0则视频默认暂停
9:var params={bgcolor:'#FFF',allowFullScreen:true,allowScriptAccess:'always',wmode:"transparent"};
这里也定义了一个对象,是设置播放器相关属性的。bgcolor是播放器的背景颜色,allowFullScreen是是否允许全屏,allowScriptAccess是否允许播放器跟页面中的js进行交换,wmode是设置播放器是否透明
10:var attributes={id:'ckplayer_a1',name:'ckplayer_a1'};
该对象是设置播放器的id和name名称,这个参数是很有必要设置的
11:swfobject.embedSWF('ckplayer/ckplayer.swf', 'a1', '600', '400', '10.0.0','ckplayer/expressInstall.swf', flashvars, params, attributes);
该行是调用swf播放器的代码,要注意二个swf文件的路径
参数分别表示的意思如下: 1、播放器地址 2、播放器的容器,将会在该id的容器(可以是div容器,也可以是别的,如span,li之类的反正有id就可以了) 3、播放器的宽 4、播放器的高 5、播放器所需flash插件的版本 6、检查flash插件版本的文件,要注意路径 7、即上面定义的var flashvars变量 8、即上面定义的 var params变量 9、即上面定义的 var attributes变量
至此,调用swf播放器的代码已结束。如果你只用swf,下面的内容可以不了解。
12:var video=['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4'];
定义html5视频所用到的视频地址的一个数组,为了适应不同的浏览器和平台,建议该数组增加更多的视频格式。如官方首页设置的样式
var video=['http://movie.ks.js.cn/flv/other/1_0.mp4->video/mp4','http://www.ckplayer.com/webm/0.webm->video/webm','http://www.ckplayer.com/webm/0.ogv->video/ogg'];
上面的代码演示了调用三种视频格式的方法,分别调用了mp4,webm,ogg三种视频格式,当然还可以增加另外的视频格式如m3u8
关于这个参数还有另外的一种调用方式是使用网址形式的调用。代码如下:
var video=['http://www.ckplayer.com/1.php?a=2->ajax/get/utf-8'];
上面的代码是指将从http://www.ckplayer.com/1.php?a=2这个地址读取视频地址传递给html5播放器使用,该页面地址的源代码里只需要输出一个正确的视频地址即可。不需要有其它内容,当然也可以地址前面加上相关的参数比如
{p->1}http://www.ckplayer.com/1.mp4
->后面的各个参数的意思如下:
ajax:使用无刷新读取网址形式调用视频地址
get:使用get方法传递参数,另外的还有一个post方法
utf-8:是该地址的网页编码是utf-8的,其它的还有如gb2312
13:var support=['iPad', 'iPhone', 'ios'];
定义一个(数组)变量来设置在哪些平台或浏览器中使用html5播放器,以下列出了该数组可以定义的数值以及对应的平台
数组内容
作用
all
所有平台都使用html5
all+false
所有不支持flash的平台都使用html5
iPhone
iPhone
iPad
iPad
ios
ios终端
android
android 终端或者uc浏览器
trident
IE内核
presto
opera内核
webKit(可加上版本号:如webKit5)
苹果、谷歌内核
gecko (可加上版本号:如gecko10)
火狐内核
mobile (可加上版本号:如webKit5)
移动终端
webApp
web应该程序
msie (可加上版本号:如msie10)
IE浏览器
使用方法举例
var support=['all'];所有的平台都使用html5
var support=['all+false'];//所有的不支持flash或没安装flash插件的平台上都使用html5
var support=['android +false','iPad'];//在iPad上使用html5,在android(安卓)上没有安装flash插件的情况下使用html5
14:CKobject.embedHTML5('a1','ckplayer_a1',600,400,video,flashvars,support); 括号里面的参数的意思分别是 1、视频容器id 2、播放器id 3、宽度 4、高度 5、视频地址 6、相关设置 7、支持的平台
15:
调用播放器结束
参数
默认
使用说明
f
无
s=0:为普通的视频地址 s=1:是一个网址,网址里存放视频地址 s=2:是一个网址,网址里输出xml格式的视频地址 s=3:是一个swf文件地址,该文件可以自定义方式读取视频地址,然后传递给播放器,播放器在收到地址后则卸载掉该文件 s=4:是一个swf文件地址,该文件可以向播放器发送视频流和提供各种操作函数,比如说播放,并且会加载在播放器界面中
a
无
当s>0时,a和f值拼出一个新的地址,在新的地址里读取视频地址
s
0
调用方式 =0:普通方法(f=视频地址) =1:网址形式 =2:xml形式 =3:swf形式
c
0
是否读取文本配置,0不是,1是,当=1时,播放器会自动读取和播放器相同名称的xml(默认是的ckplayer.xml)来进行进一步的配置
x
无
在c=1的时候,自定义调用xml风格路径,为空的话将调用跟播放器同名的xml文件。这个参数的作用是可以使用多套风格或设置的文件来进行随机调用 在c=0的时候,指定调用js中的风格配置函数,如c:0,x:'ckstyle2',
i
无
初始图片地址,就是在播放器默认是暂停(p:0)或默认不加载(p:2)的情况下先给一张图片遮在播放器前面,让其看起来不会一片黑,关于初始图片的大小的控制请参考配置文件里(ckplayer.js或ckplayer.xml)的setup的第14个参数
d
无
暂停时播放的广告,swf/图片,多个用竖线隔开,图片要加链接地址,没有的时候留空就行
u
无
暂停时如果是图片的话,加个链接地址,如果没有就留空,
l
无
前置广告地址,格式支持:swf/图片/http协议视频,多个用竖线隔开,图片和视频要加链接地址(下面r的值)
r
无
前置广告的链接地址,多个用竖线隔开,没有的留空
t
5|5|5...
视频开始前播放swf/图片时的时间,多个用竖线隔开 ,如果不设置,默认是每个广告5秒的时间
y
无
这里是使用网址形式调用广告地址时使用,如果要使用这个参数,前置广告的l,r,t里至少要设置l的参数为空,播放器才会根据y的值进行调用
e
1
视频结束后的动作 =0:调用js函数function playerstop(){}、这个参数有一篇单独的使用说明 =1:是循环播放, =2:是暂停播放并且不调用暂停广告 =3:是调用视频推荐列表的插件 =4:是清除视频流并调用js、功能和0差不多 =5:是暂停并且同时调用暂停广告 =6:会调用js函数(参考=0时),并且会退出全屏
v
80
默认音量,0-100之间
p
0
视频默认播放/暂停/不加载 = 0:暂停 = 1:自动播放 =2:默认不加载视频,点击时才加载视频
h
0
播放http视频流时采用何种拖动方法, =0:不使用任意拖动 =1:按关键帧进行拖动 =2:是按关键时间点进行拖动 =3:是自动判断(如果视频格式是.mp4就按关键时间点,.flv就按关键帧) =4:是自动判断(只要包含字符mp4就按关键时间点,只要包含字符flv就按关键帧)
q
"start"
视频流拖动时参考参数,默认是start
m
无
视频链接地址,如果该值不为空,则用户点击播放器会跳转到该设置的网地址上,做视频广告时用到
o
无
在设置p=2,即默认不加载视频的时候向播放器传递该视频的时间,单位:秒,也可以不传
w
无
在设置p=2,即默认不加载视频的时候向播放器传递该视频的字节数,也可以不传
g
0
视频直接g秒开始播放,这个功能类似跳过片头的功能,当然这个功能还可以用js来实现
j
0
视频提前j秒结束,跳过片尾的功能 >0时,视频大于j秒时跳转至结束 <0时,视频大于(总时间-j秒)时跳转
k
无
提示点时间,如 30|60鼠标经过进度栏30秒,60秒会提示n参数指定的相应的文字,这是以|隔开的一个数字数组 这个是鼠标经过进度栏上一些关键点时显示一个提示框,这些点需要自行设置,点的样式可以在配置文件里ck.pm_start参数设置
n
无
提示点文字,跟k配合使用,各提示文字以|隔开,所以提示文字里不能有|,(如:提示点1|提示点2)
b
0
指定播放器是否进行交互,默认交互,b=1时不使用交互,所以在站外引用时需要设置ckplayer.xml里的里设置{b->1}
z
无
缓冲广告地址,只能是一个swf文件
wh
无
固定视频比例,比如wh:'16:9',则视频将会以16:9的比例进行计算
lv
0
是否是直播视频流。默认0不是,1是,当=1时,播放器会自动锁定进度栏和快进快退按钮
loaded
无
当播放器加载成功后调用该参数定义的函数,字符类型
普通的调用视频地址方式即当s=0(可以不设置)时,播放器会直接读取flashvars里的f值进行播放,此时f值必需要是一个可以播放的视频文件地址。
此时当你需要将多段视频拼合成一段大视频进行播放的话,则需设置f:'1.flv|2.flv|3.flv'这样的形式
下面的代码演示如何通过调用一个网址(该网址输出视频地址)来播放视频
要使用该方式调用视频,需要注意如下几点: 1、s=1 2、f值可以设置在ckplayer.xml或ckplayer.js里,这样才能达到隐藏视频地址的功能,以ckplayer.js为例,我们可以找到ckstyle中的flashvars:'',设置一下
flashvars:'{f->http://www.ckplayer.com/down/url.php?id=[$pat]}',
在该处,甚至可以把其它的参数比如s也设置到flashvars里:
flashvars:'{f->http://www.ckplayer.com/down/url.php?id=[$pat]}{s->1}',
补充说明:如果你是使用的ckplayer.xml做为配置文件,则对应的设置应该是
{f->http://www.ckplayer.com/down/url.php?id=[$pat]}{s->1}
小知识:这二个参数里并不是只可以设置{f->}{s->},还可以设置更我的。比如前置广告暂停广告等都可以在此处设置,以方便统一管理。各参数都是{参数->值}的形式
这样你的调用代码只需要如下形式即可
当以上的代码出现在你的页面中时,普通用户是没法知道你的视频地址的
下面说下a值,a值是用来和f的值拼合组装成新的一个网页地址来供调用视频地址使用的。
a可以是单个值,也可以是数组的形式,如下
这样播放器就会根据网址:video.php?id=2&id1=3来调用视频
需要注意的是F值中的&符号要变成%26
需要注意的是[$pat]和[$pat0]是相等的,都是调用a值里的第一个值的。
对应的替换符和值对应关系如下:
a:'a0|a1|a2|a3'
[$pat]
a0
[$pat0]
a0
[$pat1]
a1
[$pat2]
a2
[$pat3]
a3
下面的代码演示如何通过调用一个xml形式的网址(该网址输出xml格式的视频地址)来播放视频
要使用该方式调用视频,需要注意如下几点: 1、s=2
2、有关于xml的标准请参考http://www.ckplayer.com/down/xml.php?id=1
{d->1.swf} 第一段视频地址 第一段视频的字节数,如果没有,可以直接删除该项,那么播放器就会自动计算字节 第一段视频的时间,秒数,没有也直接删除 第二段视频地址 第二段视频的字节数 第二段视频的秒数
3、f值可以设置在ckplayer.xml或ckplayer.js里,这样才能达到隐藏视频地址的功能,以ckplayer.js为例,我们可以找到ckstyle中的flashvars:'',设置一下
flashvars:'{f->http://www.ckplayer.com/down/xml.php?id=[$pat]}',
在该处,甚至可以把其它的参数比如s也设置到flashvars里:
flashvars:'{f->http://www.ckplayer.com/down/xml.php?id=[$pat]}{s->1}',
补充说明:如果你是使用的ckplayer.xml做为配置文件,则对应的设置应该是
{f->http://www.ckplayer.com/down/xml.php?id=[$pat]}{s->1}
小知识:这二个参数里并不是只可以设置{f->}{s->},还可以设置更多的。比如前置广告暂停广告等都可以在此处设置,以方便统一管理。各参数都是{参数->值}的形式
这样你的调用代码只需要如下形式即可
当以上的代码出现在你的页面中时,普通用户是没法知道你的视频地址的
下面说下a值,a值是用来和f的值拼合组装成新的一个网页地址来供调用视频地址使用的。
a可以是单个值,也可以是数组的形式,如下
这样播放器就会根据网址:video.php?id=2&id1=3来调用视频
需要注意的是F值中的&符号要变成%26
需要注意的是[$pat]和[$pat0]是相等的,都是调用a值里的第一个值的。
对应的替换符和值对应关系如下:
a:'a0|a1|a2|a3'
[$pat]
a0
[$pat0]
a0
[$pat1]
a1
[$pat2]
a2
[$pat3]
a3
这种方法是对于有as3语言基础的人有用处
原理就是播放器会根据你的设置调用一个swf文件并且跟该文件进行交互,然后该文件向播放器发送视频地址(各段视频的时长,字节数)。然后播放器进行播放
geturl.swf里的代码本教程提供一个简单的示例。在实际使用中需要你自行进行扩展
var ck:Object;
function setAppObj(app:Object):void{//系统保留,不能删除
ck=app;
Address();
}
function Address(){
ck.loadAddress("1.flv|2.flv","3000|3000","35|35");
}
setAppobj()该函数是用来接受播放器发送自身对象的,当播放器加载该插件(geturl.swf)后会判断里面是否有一个setAppobj的函数,有的话就把播放器自身当作一个对像传递给该函数,可以理解成
function setAppObj(播放器:Object):void{}
然后在该段代码里应该设置了ck=app所以ck就是指播放器(而不是指该插件)
下面的loadAddress是播放器里的一个函数,只要调用就可以发送初始化的视频地址了。
你可能感兴趣的:(前沿信息,让你爽!!!,Css,html)
计算机视觉 |解锁视频理解三剑客——TimeSformer
紫雾凌寒
AI 炼金厂 # 计算机视觉 # 自然语言处理(NPL) 计算机视觉 深度学习 神经网络 TimeSformer transformer python timesformer
一、引言在当今数字化时代,视频数据呈爆炸式增长,从日常的社交媒体分享到安防监控、医疗影像、自动驾驶等专业领域,视频无处不在。视频理解作为计算机视觉领域的重要研究方向,旨在让计算机能够像人类一样理解视频中的内容,包括识别视频中的物体、动作、场景,以及理解事件的发展过程和语义信息等。这一技术的发展对于实现智能视频分析、视频检索、自动驾驶、智能安防等应用具有至关重要的意义,它能够帮助我们从海量的视频数据
从零打造 Python 爬虫项目:需求分析到部署
西攻城狮北
python 爬虫 实战案例
一、项目概述二、需求分析三、开发环境搭建四、代码实现1.爬虫基础2.数据解析与存储3.应对反爬虫机制4.多页爬取五、部署与运行1.定时任务2.云服务器部署六、常见问题解决七、总结随着互联网的飞速发展,信息获取成为了人们日常生活和工作中不可或缺的一部分。然而,传统的手动收集信息的方式效率低下、准确性难以保证,无法满足大量数据需求。Python爬虫技术应运而生,它能够自动化地从互联网上获取大量数据,为
Python uiautomtion模块使用
Midway-Z
python 开发语言 windows
uiautomation1.引言目的:本指南旨在为想要使用Python进行Windows应用程序自动化的人士提供全面的学习资源。无论你是新手还是有一定经验的开发者,都能从中找到有价值的信息。概述:uiautomation是一个强大的Python库,用于与基于MicrosoftUIAutomation(UIA)框架的应用程序交互。它可以帮助你自动化日常任务、执行软件测试或创建辅助工具。https:/
SpringBoot架构下宠物领养解决方案
2402_85758349
spring boot 架构 宠物
第1章绪论1.1课题背景二十一世纪互联网的出现,改变了几千年以来人们的生活,不仅仅是生活物资的丰富,还有精神层次的丰富。时代进步的标志,就是让人们过上更好的生活。在互联网诞生之前,地域位置往往是人们思想上不可跨域的鸿沟,信息的传播速度极慢,信息处理的速度和要求还是通过人们骑马或者是信鸽传递,这些信息传递都是不可控制的,中间很有可能丢失,信息的传递水平决定了人们生活的水平。现如今,大家都在用互联网来
用元数据过滤向量库:区分不同类型数据的简单方法
黑金IT
AI智能 向量数据库 python 知识图谱 人工智能
如何在将Python编程题库和花卉分类信息这两种截然不同的知识体系融入同一向量库时,我们如何确保在提问时能够精确区分它们?难道不是通过为每种知识体设置独特的标签,如“教学语言:python,题目难度:简单”与“花的种类:水仙,类型2,重被花”这样的元数据来实现吗?难道不是依靠这种分类机制,我们才能在用户提出问题时,系统根据问题内容与标签进行匹配,从而确保调用正确的知识体吗?第一.在向量库中区分不同
Readability.js 与 Newspaper提取网页内容和元数据
黑金IT
nodejs 开发语言 全文检索
在当今信息爆炸的时代,网页内容的提取和处理变得尤为重要。无论是从新闻网站、博客还是教程网站中提取内容,都需要一个高效、准确的工具来帮助我们去除无关信息,提取出有价值的正文内容。这不仅能够提高我们的工作效率,还能让我们更好地专注于内容本身。为什么选择Readability.js和Newspaper?Readability.js和Newspaper是两个非常流行的Node.js库,它们能够帮助我们从网
【Python】之raise函数用法口诀
黏苞米
python
一、口诀速记主动触发用raise,异常类型别乱选内置异常优先用,自定义类更灵活重抛异常不加参,异常链条要关联传递信息加描述,性能消耗需谨慎断言assert有区别,生产环境更推荐二、逐句解析口诀句对应知识点代码示例主动触发用raise主动中断程序流,替代返回错误码ifx0→生产环境可能失效生产环境更推荐关键业务逻辑强制使用raise保证错误必现支付失败必抛PaymentErro
如何最简单、通俗地理解Python的迭代器
塞大花
Python学习笔记 python 开发语言 迭代器 迭代器模式 iterator pattern 人工智能 Python编程
编程中,迭代器是一个常见的工具,如果用非编程语言来描述,可以理解成迭代器就像一本书的书签,每次翻页都会记住你读到哪里,下一次继续从这个位置往下读,直到读完为止。在Python编程中,迭代器(Iterator)是一个很常见概念。很多初学者看到“迭代器”这个词,就会觉得它很复杂,其实它的核心思想非常简单,甚至可以用生活中的例子来直观理解:想象一下你在看一本书,但这本书的设计比较特别:你只能通过翻页来读
执行时报错 Directory not empty
胡说先森
linux 运维 服务器
"Directorynotempty"错误通常表示尝试删除的目录不是空的,也就是说它里面还有文件或子目录。要解决这个问题,你可以尝试删除目录里的文件或子目录,或者使用带有递归选项的命令,如rm-r或rmdir-p,来强制删除目录及其子目录。例如,如果你想删除名为mydir的目录,你可以使用以下命令:rm-rmydir这将删除mydir目录及其所有子目录和文件。注意:使用带有递归选项的命令时要格外小
selenium之表格的定位
weixin_33755557
python 面试 测试
2019独角兽企业重金招聘Python工程师标准>>>真的勇士,敢于直面惨淡的warning、敢于正视淋漓的error目录被测试网页的HTML代码1.遍历表格所有单元格2.定位表格中的某个元素3.定位表格中的子元素总结浏览器网页常常会包含各类表格,自动化测试工程师可能会经常操作表格中的行,列以及某些特定的单元格,因此熟练掌握表格的定位方法是自动化测试实施过程中必要的技能。被测试网页的HTML代码被
html 视频在线播放,HTML 视频(Video)播放
不教书的塞涅卡
html 视频在线播放
HTML视频(Video)播放在HTML中播放视频有很多种方法。HTML视频(Videos)播放示例html>基础教程(nhooo.com)测试看看‹/›问题以及解决方法在HTML中播放视频并不容易!您需要谙熟大量技巧,以确保您的视频文件在所有浏览器中(InternetExplorer,Chrome,Firefox,Safari,Opera)和所有硬件上(PC,Mac,iPad,iPhone)都能
minikube 的 Kubernetes 入门教程--Dify
NightReader
minikube kubernetes 容器 云原生
Dify是一款开源的大语言模型(LLM)应用开发平台。它融合了后端即服务(BackendasService)和LLMOps的理念,使开发者可以快速搭建生产级的生成式AI应用。即使你是非技术人员,也能参与到AI应用的定义和数据运营过程中。为什么使用Dify?你或许可以把LangChain这类的开发库(Library)想象为有着锤子、钉子的工具箱。与之相比,Dify提供了更接近生产需要的完整方案,Di
Python 用 Selenium & DataFrame 提取网页内表格数据
solosoft
python selenium
提取的数据导入DataFrame,方便后期处理frompandas.core.frameimportDataFramefromseleniumimportwebdriverdriver=webdriver.Edge();driver.get("http://data.eastmoney.com/hsgt/index.html")table_content=driver.find_element_b
Windows 安装pyenv
码农小钢
python linux java windows shell
步骤一:安装命令pipinstallpyenv-win--target%USERPROFILE%/.pyenv步骤二:在文件管理器试试pyenv-winimage.png步骤三:复制路径步骤四:添加环境变量变量把PYENV添加到系统变量。注意不是用户变量。变量名:PYENV变量值:C:\Users\Administrator\.pyenv\pyenv-win这里填写你的pyenv路径path添加把
Java 简介
谏君之
java教程 java 开发语言
Java简介Java是一种基于类的面向对象的编程语言,旨在具有尽可能少的实现依赖关系。它旨在让应用程序开发人员**一次编写并随处运行(WORA),**这意味着编译后的Java代码可以在支持Java的所有平台上运行,而无需重新编译。Java广泛用于开发桌面、Web和移动设备的应用程序。Java以其简单性、健壮性和安全功能而闻名,使其成为企业级应用程序的热门选择。Java应用程序可以被编译为在任何Ja
python爬取网页的方法总结,python爬虫获取网页数据
阳阳2013哈哈
python
大家好,小编来为大家解答以下问题,python爬取网页信息代码正确爬取不到,利用python爬取简单网页数据步骤,今天让我们一起来看看吧!文章目录1.抓取网页源代码2.抓取一个网页源代码中的某标签内容3.抓取多个网页子标签的内容Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能在我们开始之前,我们需要安装一些
【2025年14期免费获取股票数据API接口】实例演示五种主流语言获取股票行情api接口之沪深A股近年增发数据获取实例演示及接口API说明文档
不会写代码的码农农
python 开发语言 java 股票API 股票数据接口
在近一至两年期间,股票量化分析逐步成为备受关注的热门议题。对于投身于该领域工作而言,首要步骤便是获取全面且精准的股票数据。无论是实时交易数据、历史交易记录、财务数据,亦或是基本面信息,这些数据均是开展量化分析过程中不可或缺的宝贵资源。我们的核心任务在于从这些数据中提炼出具有价值的信息,从而为投资策略提供坚实有力的指导。在数据探索进程中,我尝试运用了多种方法,涵盖自编网易股票页面爬虫程序、申万行业数
密码狗的使命
加密狗定制分析赋值
plotly 人工智能 scikit-learn 密码学 运维
密码狗:数字时代的忠诚卫士在数字时代的浪潮中,"密码狗"这个充满科技感的词汇悄然兴起。它不是一个简单的密码管理工具,而是数字时代忠诚卫士的象征。密码狗守护着我们的数字资产,捍卫着我们的隐私安全,在虚拟与现实的边界上筑起一道坚固的防线。一、密码狗的使命在数字世界中,密码是守护个人隐私的第一道防线。密码狗的出现,让这道防线变得更加坚固。它采用先进的加密算法,将复杂的密码存储在安全的硬件设备中,确保即使
AI大语言模型概述:从GPT到BERT的技术演进
AI智能涌现深度研究
AI大模型应用入门实战与进阶 DeepSeek R1 & 大数据AI人工智能 计算 大数据 人工智能 语言模型 AI 大模型 LLM Java Python 架构设计 Agent RPA
1.背景介绍1.1什么是大语言模型大语言模型是一种基于深度学习的自然语言处理技术,它可以理解和生成人类语言。这些模型通过学习大量的文本数据,捕捉到语言的语法、语义和情感等信息,从而实现对自然语言的理解和生成。1.2为什么大语言模型如此重要大语言模型在近年来取得了显著的进展,它们在各种自然语言处理任务中都取得了最先进的性能。这些任务包括机器翻译、情感分析、文本摘要、问答系统等。大语言模型的成功在很大
精通Simulink第一课:在Simulink中基于水箱水位控制的三参数PID整定
Qing_er爱吃山竹
simulink matlab 自动化
在Simulink中基于水箱水位控制的三参数PID整定主要包括以下几个步骤:建立水箱水位模型:首先,需要建立一个反映水箱水位变化的数学模型。这个模型应该能够描述水箱水位(输出变量)如何响应进水量变化(输入变量)。在Simulink中,你可以使用连续时间积分器(Integrator)和增益(Gain)等基本组件来构建这个模型。设计PID控制器:PID控制器由比例(P)、积分(I)和微分(D)三个部分
告别繁琐、拥抱高效-翔云发票识别+发票查验接口
OCR_API
接口 ocr python 开发语言 c# pdf
你是否还在为发票管理而烦恼?财务人员每天被堆积如山的发票淹没,手动录入信息耗时耗力,还容易出错?发票真伪难辨,担心收到假发票给企业带来损失?难以快速获取发票全票面信息,影响后续报销、入账等流程?缺乏有效的发票管理手段,难以进行数据分析和风险控制?别担心,翔云发票识别与发票查验接口来帮您!翔云发票识别与发票查验接口,为企业提供高效、精准的发票管理解决方案。只需上传发票图片或PDF文件,即可快速识别发
有什么免费的 RPA 软件?
IDFaucet
rpa
在寻求提升工作效率、优化业务流程的道路上,免费的RPA软件成为众多企业和个人关注的焦点。火语言RPA凭借独特优势,在免费RPA软件领域脱颖而出,为用户带来高效、便捷的自动化体验。免费使用,功能不减火语言RPA提供免费版本,让用户在不产生任何费用的情况下,就能体验到强大的自动化功能。其可视化编程界面堪称一绝,哪怕是毫无编程基础的小白,也能通过简单的拖拽操作,轻松创建自动化流程。例如,在日常办公中,将
基于单片机的数字电能表(论文+源码)
云山工作室
单片机 嵌入式硬件 毕业设计 stm32
1.系统整体方案设计数字电能表系统设计解决了传统的用电设备的应用问题,能够让用户通过手机等移动设备获取电器的实时工作状态及数据信息,能够帮助找出高能耗的电器,及时停用或替换高能耗用电设备。在功能上需要实现高压交流电压的测量,并且可以对交流电压,电流,电能质量,功率因数等进行测量。如图2.1所示为系统整体设计框图,系统采用STC89C52单片机作为主控制器,搭配外设PZEM-004模块实现电能检测,
保护API测试数据:Postman中的敏感信息安全策略
2401_85812053
postman lua 测试工具
标题:保护API测试数据:Postman中的敏感信息安全策略在当今数字化时代,API测试已成为软件开发过程中不可或缺的一环。然而,随着敏感数据的频繁交换,如何保护这些信息成为了一个重要议题。Postman,作为一款流行的API开发工具,提供了多种方法来确保测试数据的安全性。本文将深入探讨Postman中保护敏感信息的最佳实践,并提供实用的代码示例。1.理解敏感数据在讨论保护措施之前,首先需要明确什
Python selenium 库
ONE_PUNCH_Ge
python
Selenium是一个用于自动化Web浏览器操作的强大工具,广泛应用于Web应用程序测试、网页数据抓取和任务自动化等场景。Selenium为各种编程语言提供了API,用作测试。目前的官方API文档有C#、JavaScript、Java、Python、Ruby。安装Selenium和WebDriver安装Selenium要开始使用Selenium,首先需要安装selenium库,并下载适用于你浏览器
App弱网测试是怎么测试的!
程序员小 濠
自动化测试 技术分享 干货分享 jmeter 测试用例 测试工具 python 自动化测试 软件测试 APP测试
一、网络测试的一般流程step1:首先要考虑网络正常的情况①各个模块的功能正常可用②页面元素/数据显示正常step2:其次要考虑无网络的情况①APP各个功能在无网络情况下是否可用②APP各个页面之间切换是否正常③发送网络请求时是否会导致闪退、卡死等异常情况④APP各个页面是否显示完整美观,未刷新的页面是否做了相应的提示和处理⑤在无网络情况下数据是否会丢失⑥无网络提示信息是否友好step3:再次考虑
Python装饰器居然还能这么用!新手小白必看[附源码]
花小姐的春天
跟着花姐学Python python 装饰器模式 0基础学Python Python教程 后端 脚本
大家好呀!我是花姐。你有没有遇到过这样的情况:你写了一个函数,突然想到要给它增加一些额外功能,或者你希望能在多个地方重复使用这段功能,结果却发现每次都得重新写一遍代码,超级烦!别担心,今天花姐给大家介绍一个神器——装饰器!它可以在不改变原始函数代码的情况下,为函数增加新功能,而且代码更加简洁、高效,关键是让你的代码更“优雅”。好啦,今天我们就来一起看看装饰器的魔力,它怎么帮助我们做出更简洁、可复用
知识赋能,效率倍增:探讨 Baklib 实现自助服务知识系统的最佳实践
数字体验运营官
其他
一、什么是自助服务?自助服务就是自助访问信息和服务的一种方式。自助服务终端可以是银行的ATM取款机,零售店的自助售卖机,图书馆的图书导览大屏,软件公司的在线操作指南,SaaS平台的HelpCenter等等。自助服务的流行源于其从客户体验和客户满意度角度带来的价值。在知识边缘管理方面也是如此。客户和员工希望尽可能自己完成工作,不论信息需求如何不同,自助服务的需求却是一致的。只有当事情变得复杂时,他们
04、结构体两种传参形式
weixin_30376163
结构体两种传参形式题目:有一个结构体变量stu,内含学生学号、姓名、和3门课程的成绩。要求在函数add10中将小于60分的成绩增加10分,然后输出全部信息。一、结构体变量作为实参/*2017年6月30日13:53:15功能:结构体变量作为实参*/#includestructstu{intnum;charname[10];floatscore[3];};voidadd10(structstust2)
pycharm 远程连接服务器 python packaging tool not found
安屿咨询
python pycharm 服务器 开发语言 ide
python相关学习资料:https://edu.51cto.com/video/3832.htmlhttps://edu.51cto.com/video/3502.htmlhttps://edu.51cto.com/video/4645.htmlPyCharm远程连接服务器时遇到PythonPackagingToolNotFound的问题在使用PyCharm远程连接服务器进行开发时,可能会遇到“
linux系统服务器下jsp传参数乱码
3213213333332132
java jsp linux windows xml
在一次解决乱码问题中, 发现jsp在windows下用js原生的方法进行编码没有问题,但是到了linux下就有问题, escape,encodeURI,encodeURIComponent等都解决不了问题
但是我想了下既然原生的方法不行,我用el标签的方式对中文参数进行加密解密总该可以吧。于是用了java的java.net.URLDecoder,结果还是乱码,最后在绝望之际,用了下面的方法解决了
Spring 注解区别以及应用
BlueSkator
spring
1. @Autowired
@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean,或者不存在UserDao类型的bean,会抛出 BeanCreationException异常,这时可以通过在该属性上再加一个@Qualifier注解来声明唯一的id解决问题。
2. @Qualifier
当spring中存在至少一个匹
printf和sprintf的应用
dcj3sjt126com
PHP sprintf printf
<?php
printf('b: %b <br>c: %c <br>d: %d <bf>f: %f', 80,80, 80, 80);
echo '<br />';
printf('%0.2f <br>%+d <br>%0.2f <br>', 8, 8, 1235.456);
printf('th
config.getInitParameter
171815164
parameter
web.xml
<servlet>
<servlet-name>servlet1</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>str</param-name>
Ant标签详解--基础操作
g21121
ant
Ant的一些核心概念:
build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml。 project:每个构建文
[简单]代码片段_数据合并
53873039oycg
代码
合并规则:删除家长phone为空的记录,若一个家长对应多个孩子,保留一条家长记录,家长id修改为phone,对应关系也要修改。
代码如下:
java 通信技术
云端月影
Java 远程通信技术
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来
string与StringBuilder 性能差距到底有多大
aijuans
之前也看过一些对string与StringBuilder的性能分析,总感觉这个应该对整体性能不会产生多大的影响,所以就一直没有关注这块!
由于学程序初期最先接触的string拼接,所以就一直没改变过自己的习惯!
今天碰到 java.util.ConcurrentModificationException 异常
antonyup_2006
java 多线程 工作 IBM
今天改bug,其中有个实现是要对map进行循环,然后有删除操作,代码如下:
Iterator<ListItem> iter = ItemMap.keySet.iterator();
while(iter.hasNext()){
ListItem it = iter.next();
//...一些逻辑操作
ItemMap.remove(it);
}
结果运行报Con
PL/SQL的类型和JDBC操作数据库
百合不是茶
PL/SQL表 标量类型 游标 PL/SQL记录
PL/SQL的标量类型:
字符,数字,时间,布尔,%type五中类型的
--标量:数据库中预定义类型的变量
--定义一个变长字符串
v_ename varchar2(10);
--定义一个小数,范围 -9999.99~9999.99
v_sal number(6,2);
--定义一个小数并给一个初始值为5.4 :=是pl/sql的赋值号
Mockito:一个强大的用于 Java 开发的模拟测试框架实例
bijian1013
mockito 单元测试
Mockito框架:
Mockito是一个基于MIT协议的开源java测试框架。 Mockito区别于其他模拟框架的地方主要是允许开发者在没有建立“预期”时验证被测系统的行为。对于mock对象的一个评价是测试系统的测
精通Oracle10编程SQL(10)处理例外
bijian1013
oracle 数据库 plsql
/*
*处理例外
*/
--例外简介
--处理例外-传递例外
declare
v_ename emp.ename%TYPE;
begin
SELECT ename INTO v_ename FROM emp
where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
exceptio
【Java】Java执行远程机器上Linux命令
bit1129
linux命令
Java使用ethz通过ssh2执行远程机器Linux上命令,
封装定义Linux机器的环境信息
package com.tom;
import java.io.File;
public class Env {
private String hostaddr; //Linux机器的IP地址
private Integer po
java通信之Socket通信基础
白糖_
java socket 网络协议
正处于网络环境下的两个程序,它们之间通过一个交互的连接来实现数据通信。每一个连接的通信端叫做一个Socket。一个完整的Socket通信程序应该包含以下几个步骤:
①创建Socket;
②打开连接到Socket的输入输出流;
④按照一定的协议对Socket进行读写操作;
④关闭Socket。
Socket通信分两部分:服务器端和客户端。服务器端必须优先启动,然后等待soc
angular.bind
boyitech
AngularJS angular.bind AngularJS API bind
angular.bind 描述: 上下文,函数以及参数动态绑定,返回值为绑定之后的函数. 其中args是可选的动态参数,self在fn中使用this调用。 使用方法: angular.bind(se
java-13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class KickOutBadGuys {
/**
* 题目:13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
* Maybe you can find out
Redis.conf配置文件及相关项说明(自查备用)
Kai_Ge
redis
Redis.conf配置文件及相关项说明
# Redis configuration file example
# Note on units: when memory size is needed, it is possible to specifiy
# it in the usual form of 1k 5GB 4M and so forth:
#
[强人工智能]实现大规模拓扑分析是实现强人工智能的前奏
comsci
人工智能
真不好意思,各位朋友...博客再次更新...
节点数量太少,网络的分析和处理能力肯定不足,在面对机器人控制的需求方面,显得力不从心....
但是,节点数太多,对拓扑数据处理的要求又很高,设计目标也很高,实现起来难度颇大...
记录一些常用的函数
dai_lm
java
public static String convertInputStreamToString(InputStream is) {
StringBuilder result = new StringBuilder();
if (is != null)
try {
InputStreamReader inputReader = new InputStreamRead
Hadoop中小规模集群的并行计算缺陷
datamachine
mapreduce hadoop 并行计算
注:写这篇文章的初衷是因为Hadoop炒得有点太热,很多用户现有数据规模并不适用于Hadoop,但迫于扩容压力和去IOE(Hadoop的廉价扩展的确非常有吸引力)而尝试。尝试永远是件正确的事儿,但有时候不用太突进,可以调优或调需求,发挥现有系统的最大效用为上策。
-----------------------------------------------------------------
小学4年级英语单词背诵第二课
dcj3sjt126com
english word
egg 蛋
twenty 二十
any 任何
well 健康的,好
twelve 十二
farm 农场
every 每一个
back 向后,回
fast 快速的
whose 谁的
much 许多
flower 花
watch 手表
very 非常,很
sport 运动
Chinese 中国的
自己实践了github的webhooks, linux上面的权限需要注意
dcj3sjt126com
github webhook
环境, 阿里云服务器
1. 本地创建项目, push到github服务器上面
2. 生成www用户的密钥
sudo -u www ssh-keygen -t rsa -C "xxx@xx.com"
3. 将密钥添加到github帐号的SSH_KEYS里面
3. 用www用户执行克隆, 源使
Java冒泡排序
蕃薯耀
冒泡排序 Java冒泡排序 Java排序
冒泡排序
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月23日 10:40:14 星期二
http://fanshuyao.iteye.com/
Excle读取数据转换为实体List【基于apache-poi】
hanqunfeng
apache
1.依赖apache-poi
2.支持xls和xlsx
3.支持按属性名称绑定数据值
4.支持从指定行、列开始读取
5.支持同时读取多个sheet
6.具体使用方式参见org.cpframework.utils.excelreader.CP_ExcelReaderUtilTest.java
比如:
Str
3个处于草稿阶段的Javascript API介绍
jackyrong
JavaScript
原文:
http://www.sitepoint.com/3-new-javascript-apis-may-want-follow/?utm_source=html5weekly&utm_medium=email
本文中,介绍3个仍然处于草稿阶段,但应该值得关注的Javascript API.
1) Web Alarm API
&
6个创建Web应用程序的高效PHP框架
lampcy
Web 框架 PHP
以下是创建Web应用程序的PHP框架,有coder bay网站整理推荐:
1. CakePHP
CakePHP是一个PHP快速开发框架,它提供了一个用于开发、维护和部署应用程序的可扩展体系。CakePHP使用了众所周知的设计模式,如MVC和ORM,降低了开发成本,并减少了开发人员写代码的工作量。
2. CodeIgniter
CodeIgniter是一个非常小且功能强大的PHP框架,适合需
评"救市后中国股市新乱象泛起"谣言
nannan408
首先来看百度百家一位易姓作者的新闻:
三个多星期来股市持续暴跌,跌得投资者及上市公司都处于极度的恐慌和焦虑中,都要寻找自保及规避风险的方式。面对股市之危机,政府突然进入市场救市,希望以此来重建市场信心,以此来扭转股市持续暴跌的预期。而政府进入市场后,由于市场运作方式发生了巨大变化,投资者及上市公司为了自保及为了应对这种变化,中国股市新的乱象也自然产生。
首先,中国股市这两天
页面全屏遮罩的实现 方式
Rainbow702
html css 遮罩 mask
之前做了一个页面,在点击了某个按钮之后,要求页面出现一个全屏遮罩,一开始使用了position:absolute来实现的。当时因为画面大小是固定的,不可以resize的,所以,没有发现问题。
最近用了同样的做法做了一个遮罩,但是画面是可以进行resize的,所以就发现了一个问题,当画面被reisze到浏览器出现了滚动条的时候,就发现,用absolute 的做法是有问题的。后来改成fixed定位就
关于angularjs的点滴
tntxia
AngularJS
angular是一个新兴的JS框架,和以往的框架不同的事,Angularjs更注重于js的建模,管理,同时也提供大量的组件帮助用户组建商业化程序,是一种值得研究的JS框架。
Angularjs使我们可以使用MVC的模式来写JS。Angularjs现在由谷歌来维护。
这里我们来简单的探讨一下它的应用。
首先使用Angularjs我
Nutz--->>反复新建ioc容器的后果
xiaoxiao1992428
DAO mvc IOC nutz
问题:
public class DaoZ {
public static Dao dao() { // 每当需要使用dao的时候就取一次
Ioc ioc = new NutIoc(new JsonLoader("dao.js"));
return ioc.get(