vlcPlayer

setPath play close hide removeEventListener cancelFullScreen rewind setBrightness setVolume getDuration isFullScreen

概述

vlcPlayer 封装了MobileVLCKit,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议(不支持本地音频文件播放)。 本模块带有UI方案,打开后为一个具有完整功能的播放器界面,本播放器全屏时为横屏显示,支持屏幕随设备自动旋转。具有双击播放、暂停,手势滑动改变播放进度、屏幕亮度和音量的功能。

open

打开播放器界面

open({params})

rect:

  • 类型:JSON对象
  • 描述:(可选项)播放器的位置及长宽

texts:

  • 类型:JSON 对象
  • 描述:(可选项)顶部标题文字
  • 内部字段:
  1. head: { //(可选项)JSON 对象;顶部文字
  2. title: '' //(可选项)字符串类型;顶部标题文字
  3. }
  4. }

styles:

  • 类型:JSON 对象
  • 描述:(可选项)模块的样式设置
  • 内部字段:
  1. {
  2. repeat:{
  3. repeatwidth: 40, //(可选项)数字类型;重新播放按钮的宽;默认:40
  4. repeatheight: 60, //(可选项)数字类型;重新播放按钮的高;默认:60
  5. repeatImg:'', //(可选项)字符串类型;重新播放按钮的背景图片,要求本地路径(widget://、fs://);默认:重新播放小图标
  6. },
  7. lock:{
  8. lockSize: 30, //(可选项)数字类型;锁定屏幕按钮大小;默认:30
  9. lockImg:'', //(可选项)字符串类型;锁定屏幕按钮的背景图片,要求本地路径(widget://、fs://);默认:圆圈锁小图标
  10. },
  11. head:{ //(可选项)JSON对象;播放器顶部导航条样式
  12. bg: 'rgba(161,161,161,0.5)', //(可选项)字符串类型;顶部导航条背景,支持#、rgb、rgba、img;默认:rgba(161,161,161,0.5)
  13. height: 44, //(可选项)数字类型;顶部导航条的高;默认:44
  14. titleSize: 20, //(可选项)数字类型;顶部标题字体大小;默认:20
  15. titleColor: '#fff', //(可选项)字符串类型;顶部标题字体颜色;默认:#fff
  16. backSize: 44, //(可选项)数字类型;顶部返回按钮大小;默认:44
  17. backImg:'fs://img/back.png', //(可选项)字符串类型;顶部返回按钮的背景图片,要求本地路径(widget://、fs://);默认:返回小箭头图标
  18. hide:false, //顶部导航条是否隐藏;默认:false
  19. customButtons:[ //(可选项)数组类型;顶部导航条自定义按钮数组,最多支持三个自定义按钮,从右到左排列
  20. { //(可选项)JSON对象;顶部导航条自定义按钮
  21. w:44, //(可选项)数字类型;按钮宽度;默认:44
  22. h:44, //(可选项)数字类型;按钮高度;默认:44
  23. rightMagin:10,
  24. img:'widget://image/ZFPlayer/ZFPlayer_lock-nor.png', //(可选项)字符串类型;自定义按钮正常状态下设置图片,要求本地路径(widget://、fs://);默认:无
  25. imgSelected:'widget://image/ZFPlayer/ZFPlayer_repeat_video.png', //(可选项)字符串类型;自定义按钮选中状态下设置图片,要求本地路径(widget://、fs://);默认:无
  26. }]
  27. },
  28. foot:{ //(可选项)JSON对象;播放器底部导航条样式
  29. bg: 'rgba(161,161,161,0.5)', //(可选项)字符串类型;底部导航条背景,支持#、rgb、rgba、img;默认:rgba(161,161,161,0.5)
  30. height: 44, //(可选项)数字类型;底部导航条的高;默认:44
  31. playSize: 44, //(可选项)数字类型;底部播放/暂停按钮大小;默认:44
  32. playImg:'fs://img/back.png', //(可选项)字符串类型;底部播放按钮的背景图片,要求本地路径(widget://、fs://);默认:播放按钮图标
  33. pauseImg:'fs://img/back.png', //(可选项)字符串类型;底部暂停按钮的背景图片,要求本地路径(widget://、fs://);默认:暂停按钮图标
  34. timeSize: 14, //(可选项)数字类型;底部时间标签大小;默认:14
  35. timeColor:'#fff', //(可选项)字符串类型;底部时间标签颜色,支持#、rgba、rgb;默认:#fff
  36. sliderImg:'fs://img/slder@2x.png',//(可选项)字符串类型;底部进度条滑块背景图片,要求本地路径(widget://、fs://);默认:滑块小图标((在iOS上需要添加二倍图或者三倍图,否则会出现毛边))
  37. progressColor: '#696969', //(可选项)字符串类型;进度条背景色,支持#、rgba、rgb;默认:#696969
  38. progressSelected: '#76EE00', //(可选项)字符串类型;滑动后的进度条背景色,支持#、rgb、rgba;默认:#76EE00
  39. horizontalImg:'', //(可选项)字符串类型;底部横屏按钮的背景图片,要求本地路径(widget://、fs://);默认:横屏按钮图标
  40. hide:false, //底部导航条是否隐藏;默认:false
  41. }
  42. }

path:

  • 类型:字符串
  • 描述:视频资源地址,支持网络和本地路径(fs://,widget://)

autoPlay:

  • 类型:布尔
  • 描述:(可选项)打开时是否自动播放
  • 默认值:true(自动播放)

isAutorotate:

  • 类型:布尔型
  • 描述:(可选项)是否支持自动转屏;为false isFullBtn自动为false
  • 默认值:true

isShowProcessView:

  • 类型:布尔型
  • 描述:(可选项)是否显示进度条 (显示:true ; 不显示:false)【备注:直播流自动 默认为false】
  • 默认值:true

isShowTimeLable:

  • 类型:布尔型
  • 描述:(可选项)是否显示播放时间 (显示:true ; 不显示:false)备注:直播流自动 默认为false】
  • 默认值:true

isLive:

  • 类型:布尔型
  • 描述:(可选项)是否直播视频源 (直播:true;点播:false)
  • 默认值:直播:rtmp://开头|rtsp://开头|.m3u8结尾;其余为非直播

enableFull:

  • 类型:布尔
  • 描述:(可选项)本次播放视频是否全屏播放,当为true时将直接全屏播放视频,x,y,w,h,fixedOn,fixed值不会生效。
  • 默认值:false(窗口播放)

isFullBtn:

  • 类型:布尔
  • 描述:(可选项)小窗口是否显示进入全屏按钮
  • 默认值:true(显示)

isBackBtn:

  • 类型:布尔
  • 描述:(可选项)小窗口是否显示返回按钮
  • 默认值:false(不显示)

isSmallOpenGesture:

  • 类型:布尔型
  • 描述:(可选项)窗口播放时是否开启手势控制音量,亮度和进度 (开启:true;不开启:false)
  • 默认值:false

isOpenGesture:

  • 类型:布尔型
  • 描述:(可选项)全屏时是否开启手势控制音量,亮度和进度 (开启:true;不开启 - :false)
  • 默认值:true

coverImg:

  • 类型:布尔
  • 描述:(可选项)封面图路径,播放器打开尚未播放时的封面图,要求本地路径(widget://、fs://)

audio:

  • 类型:布尔
  • 描述:(可选项)播放的资源是否是音频文件,若是则开始播放后不移除封面图 coverImg
  • 默认值:false

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.open({
  3. texts: {
  4. head: {
  5. title: '顶部文字'
  6. }
  7. },
  8. styles: {
  9. repeat:{
  10. repeatwidth: 40, //(可选项)数字类型;重新播放按钮的宽;默认:40
  11. repeatheight: 60, //(可选项)数字类型;重新播放按钮的高;默认:60
  12. repeatImg:'',
  13. },
  14. lock:{
  15. lockSize: 30,
  16. lockImg:'',
  17. },
  18. head: {
  19. bg: 'rgba(0.5,0.5,0.5,0.7)',
  20. height: 44,
  21. titleSize: 20,
  22. titleColor: '#fff',
  23. backSize: 44,
  24. backImg: 'fs://img/back.png',
  25. hide:false,
  26. customButtons:[
  27. {
  28. w:44,
  29. rightMagin:10,
  30. img:'',
  31. imgSelected:'',
  32. }]
  33. },
  34. foot: {
  35. bg: 'rgba(0.5,0.5,0.5,0.7)',
  36. height: 44,
  37. playSize: 44,
  38. playImg: '',
  39. pauseImg: '',
  40. timeSize: 14,
  41. timeColor: '#fff',
  42. sliderImg: '',
  43. progressColor: '#696969',
  44. progressSelected: '#76EE00',
  45. hide:false,
  46. verticalImg:'',
  47. horizontalImg:'',
  48. }
  49. },
  50. path: 'http://7o50kb.com2.z0.glb.qiniucdn.com/c1.1.mp4',
  51. autoPlay: true,
  52. movieScaling:'scaleNone',
  53. coverImg:'widget://image/beautiful.png',
  54. audio:false
  55. });

可用性

iOS系统

可提供的1.0.0及更高版本

setPath

设置视频的文件路径

setPath({params})

params

path:

  • 类型:字符串
  • 描述:视频资源地址,支持网络和本地路径(fs://,widget://)

coverImg:

  • 类型:布尔
  • 描述:(可选项)封面图路径,播放器打开尚未播放时的封面图,要求本地路径(widget://、fs://)

title:

  • 类型:字符串
  • 描述:(可选项)当设置 play 接口打开的视频时,本参数表示设置该视频的标题,本参数仅对 play 接口有效
  • 默认值:原标题

audio:

  • 类型:布尔
  • 描述:(可选项)播放的资源是否是音频文件,若是则开始播放后不移除封面图 coverImg
  • 默认值:false

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.setPath({
  3. path: 'http://7o50kb.com2.z0.glb.qiniucdn.com/c1.1.mp4',
  4. coverImg: '',
  5. audio:false
  6. });

可用性

iOS系统

可提供的1.0.0及更高版本

replay

重新播放

play()

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.replay();

可用性

iOS系统

可提供的1.0.0及更高版本

play

开始播放

play()

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.play();

可用性

iOS系统

可提供的1.0.0及更高版本

pause

暂停播放

pause()

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.pause();

可用性

可提供的1.0.0及更高版本

close

关闭播放器

close()

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.close();

可用性

iOS系统

可提供的1.0.0及更高版本

show

显示视频播放视图

show()

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.show();

可用性

iOS系统

可提供的1.0.0及更高版本

hide

隐藏视频播放视图

hide()

示例代码

可用性

iOS系统

可提供的1.0.0及更高版本

addEventListener

添加监听

addEventListener({params},callback(ret))

params

name:

  • 类型:字符串
  • 描述:(可选项)所要监听的动作名称
  • 取值范围:
    • gesture:手势事件监听
    • click:按钮点击事件监听
    • state:播放器状态监听

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. eventType : 'gestureTap' //字符串类型;事件类型
  3. // 取值范围:
  4. //'gestureLeftUp' : 播放器靠左的二分之一内的上滑事件
  5. //'gestureLeftDown' : 播放器靠左的二分之一内的下滑事件
  6. //'gestureRightUp' : 播放器靠右的二分之一内的上滑事件
  7. //'gestureRightDown' : 播放器靠右的二分之一内的下滑事件
  8. //'gestureSwipeLeft' : 播放器上的左滑事件
  9. //'gestureSwipeRight' : 播放器上的右滑事件
  10. //'gestureTap' : 点击播放器事件(单击手势)
  11. //'gestureDoubleTap' : 双击播放器事件(双击手势)
  12. // click对应的事件类型:
  13. //'clickLock' : 点击锁定屏幕按钮事件
  14. //'clickUNLock' : 点击解锁屏幕锁定按钮事件
  15. //'clickFullScreen' : 点击全屏按钮事件
  16. //'clickCancelFull' : 点击非全屏按钮事件
  17. //'clickPlay' : 点击播放按钮事件
  18. //'clickPause' : 点击暂停按钮事件
  19. //'clickBack' : 点击返回按钮事件
  20. //'clickLoadError' : 点击加载失败按钮事件
  21. //'clickOne' : 点击第一个自定义按钮事件(正常状态下点击)
  22. //'clickOneSelected' : 点击第一个自定义按钮事件(选中状态下点击)
  23. //'clickTwo' : 点击第二个自定义按钮事件(正常状态下点击)
  24. //'clickTwoSelected' : 点击第二个自定义按钮事件(选中状态下点击)
  25. //'clickThree' : 点击第三个自定义按钮事件(正常状态下点击)
  26. //'clickThreeSelected' : 点击第三个自定义按钮事件(选中状态下点击)
  27. // state对应的事件类型:
  28. //'statePlaying' : 播放器播放事件
  29. //'statePaused' : 播放器暂停事件
  30. //'stateComplete' : 播放器播放完成事件
  31. //'stateError' : 播放器加载视频失败事件
  32. //'stateFullScreen' : 播放器全屏事件
  33. //'stateCancelFull' : 播放器取消全屏事件
  34. }

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.addEventListener({
  3. name: 'state'
  4. }, function(ret, err) {
  5. if (ret) {
  6. alert(JSON.stringify(ret));
  7. } else {
  8. alert(JSON.stringify(err));
  9. }
  10. });

可用性

iOS系统

可提供的1.0.0及更高版本

removeEventListener

移除动作监听

removeEventListener({params})

params

name:

  • 类型:字符串
  • 描述:(可选项)所要移除的监听的动作名称
  • 取值范围:
    • gesture:手势事件监听
    • click:按钮点击事件监听
    • state:播放器状态监听

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.removeEventListener({
  3. name: 'state'
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

fullScreen

全屏播放(横屏模式)

fullScreen()

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.fullScreen();

可用性

iOS系统

可提供的1.0.0及更高版本

cancelFullScreen

取消全屏播放

cancelFullScreen()

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.cancelFullScreen();

可用性

iOS系统

可提供的1.0.0及更高版本

forward

快进

forward({params})

params

seconds:

  • 类型:数字
  • 描述:快进的秒数

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.forward({
  3. seconds: 5
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

rewind

快退

rewind({params})

params

seconds:

  • 类型:数字
  • 描述:快退的秒数

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.rewind({
  3. seconds: 5
  4. });

可用性

可提供的1.0.0及更高版本

seekTo

跳转

seekTo({params})

params

seconds:

  • 类型:数字
  • 描述:跳转到音视频播放的秒数

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.seekTo({
  3. seconds: 20
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

setBrightness

设置屏幕亮度

setBrightness({params})

brightness:

  • 类型:数字
  • 描述:(可选项)设置的屏幕的亮度,取值范围:0-100,在 iOS 平台上设置的是系统屏幕亮度。Android 平台上设置的本应用内的屏幕亮度
  • 默认值:80

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.setBrightness({
  3. brightness: 50
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

getBrightness

获取当前屏幕亮度值

getBrightness(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.getBrightness(function(ret, err) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统

可提供的1.0.0及更高版本

setVolume

设置音量

setVolume({params})

params

volume:

  • 类型:数字
  • 描述:(可选项)音量大小,取值范围:0-1
  • 默认值:0

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.setVolume({
  3. volume: 0.6
  4. });

可用性

iOS系统

可提供的1.0.0及更高版本

getVolume

获取当前播放音量

getVolume(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. volume: //数字类型;当前音量值
  3. }

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.getVolume(function(ret) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统

可提供的1.0.0及更高版本

getDuration

获取视频的时长

getDuration(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. duration: 1221122 //数字类型;视频的总时长
  3. }

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.getDuration(function(ret) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统

可提供的1.0.0及更高版本

getCurrentPosition

获取已经播放的时长

getCurrentPosition(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. currentPosition:888 //数字类型;已经播放的时长
  3. }

示例代码

  1. var vlcPlayer = api.require('vlcPlayer');
  2. vlcPlayer.getCurrentPosition(function(ret) {
  3. if (ret) {
  4. alert(JSON.stringify(ret));
  5. }
  6. });

可用性

iOS系统

可提供的1.0.0及更高版本

isFullScreen

获取是否全屏播放状态

isFullScreen(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status: true|false //布尔型;true:全屏 false:窗口

可用性

iOS系统