douYinSlidePlayer

概述

douYinSlidePlayer插件用AVPlayer封装在iOS、Ijkplayer在Android下仿抖音带UI界面的上下滑动播放视频功能。增加了预缓存功能,可以减少视频滑动时播放停顿的感觉。同时界面上集成了全屏播放按钮功能,可以全屏和滑动播放无缝切换播放。

插件接口

openPlayer

打开滑动播放器

openPlayer({params}, callback(ret,err))

params

rect:

  • 类型:JSON 对象
  • 描述:(必填项)插件的位置及尺寸
  • 内部字段:
{
    x: 0,   //(必填项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,   //(必填项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w: 320, //(必填项)数字类型;插件的宽度;默认值:所属的 Window 或 Frame 的宽度
    h: 250  //(必填项)数字类型;插件的高度;默认值:所属的 Window 或 Frame 的高度
}

fixedOn:

  • 类型:字符串
  • 描述:(可选项)插件所属 Frame 的名字,若不传则插件归属于当前 Window

fixed:

  • 类型:布尔
  • 描述:((可选项)插件是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

videos:

  • 类型:JSON 对象
  • 描述:(必填项)视频播放列表(最少传入1条记录)。
{
    vid : new Date().getTime()+0,
    videoUrl : 'http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4',//视频url地址 
    authorHeadUrl:"https://p9-dy.byteimg.com/aweme/100x100/2414900010229a84b01eb.jpeg",//作者头像,默认插件中的头像
    isFollowed:false,//是否已经关注,默认false
    authorNameFormatStr:"宇妈艺博",//作者名字
    isLike:false,//是否已经点赞,默认false
    likeCount:"2.5w",//点赞数量,字符串类型,默认""
    commonCount:"5695",//评论数量,字符串类型,默认""
    shareCount:"3.8w",//分享数量,字符串类型,默认""
    musicImgUrl:"https://p9-dy.byteimg.com/aweme/100x100/2414900010229a84b01eb.jpeg",//音乐动画区域内部的图片地址、支持http、https格式,一般设置成作者头像,即与authorHeadUrl的值相同。
    videoTitle:"你好 重新认识一下 我姓 #宦 @身高162 体重90 #性格阳光开朗 15687985462 唯独对你迷茫(太久没玩抖音的人非主流独白)",//视频标题区域的文字
    marqueeText:"@宇妈艺博创作的原声  宇妈艺博创作的原声 宇妈艺博创作的原声",//跑马灯区域的文字,注意这里的文字要超过一行才能有文字从左到右的动画产生。
    previewImg :'http://p9-dy.byteimg.com/large/tos-cn-p-0015/0dab3107ddf64793b8329fecdb3945c6_1575388895.jpeg?from=2563711402_large',//视频缩略图,仅支持http格式
    videoScaleType_i : 0,//数字型,取值范围0到5,默认0,该值用于设置视频的宽高显示模式。0:ZFPlayerScalingModeNone ;1:ZFPlayerScalingModeAspectFit ;  2:ZFPlayerScalingModeAspectFill  ; 3:ZFPlayerScalingModeFill
    videoScaleType_a : 0,//数字型,取值范围0到5,默认0,该值用于设置视频的宽高显示模式。0:SCREEN_SCALE_DEFAULT ;1:SCREEN_SCALE_16_9 ;  2:SCREEN_SCALE_4_3  ; 3:SCREEN_SCALE_MATCH_PARENT ; 4:SCREEN_SCALE_ORIGINAL ; 5:SCREEN_SCALE_CENTER_CROP
    goods : {
       img : '',
       title : ''
    },
    footlist : {
       img : '',
       title : ''
    }
}

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.openPlayer({
    rect : {
        x : 0,
        y : 150,
        h : 400
    },
    videos : [{....}],
},function(ret, err){
    alert(JSON.stringify(ret)+"   "+JSON.stringify(err));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

addEventListener

设置播放器的事件监听,需要在openPlayer回调成功后调用。

addEventListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false
    event : ''//事件名称
        "onGoodsClick",
        "onFootListClick",
        "onDoubleTap",//视频双击事件
        "onSingleTapConfirmed",//视频单击事件
        "onHeadClick",//头像点击事件
        "onFollowBtnClick",//关注按钮点击事件
        "onLikeBtnClick",//点赞按钮点击事件
        "onCommonBtnClick",//评论按钮点击事件
        "onShareBtnClick",//分享按钮点击事件
        "onMusicBtnClick",//音乐动画区域点击事件
        "onAuthorNameClick",//作者名字区域点击事件
        "onVideoTitleClick",//视频标题区域点击事件
        "onMarqueeTextClick",//跑马灯文字区域点击事件
        "onBackBtnClick",//返回按钮点击事件
        "onPageSelected",//页面上下滑动切换事件,这个事件可以获取当前页的index
        "curPage":0,//发生事件时的当前页
        "itemData":{...}//JSON对象数据,事件发生时的视频数据
        "isFullScreen":true,//全屏切换时有改值,是全屏还是竖屏
        "isLike":true,//点赞按钮点击事件发生时有该值,是点赞还是取消点赞
        "isFollowed":true,//关注按钮点击事件发生时有该值
        "autoLinkMode":"",//视频标题区域点击事件发生时有该值
            "Hashtag"//点击话题事件,即点击了以“#”开头的文字,文字内容为matchedText返回的内容
            "Mention"//点击"@"事件,即点击了以“@”开头的文字,文字内容为matchedText返回的内容
            "Url"//点击http网址事件,即点击了以“http”开头的文字,文字内容为matchedText返回的内容
            "Phone"//点击电话号码事件,电话号码为matchedText返回的内容
            "Email"//点击电子邮箱事件,电子邮箱为matchedText返回的内容
        "matchedText":"",//视频标题区域点击事件发生时有该值,见autoLinkMode参数说明。
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.addEventListener(function(ret, err){
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

# **hidePlayer**

隐藏滑动播放器

hidePlayer(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.hidePlayer();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

showPlayer

显示滑动播放器

showPlayer(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.showPlayer();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

closePlayer

关闭滑动播放器

closePlayer(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.closePlayer();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setVideoDatas

重置播放器数据

setVideoDatas({params}, callback(ret,err))

params

videos:

  • 类型:JSON 对象
  • 描述:(必填项)视频播放列表(最少传入1条记录)。
{
    vid : new Date().getTime()+0,
    videoUrl : 'http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4',//视频url地址 
    authorHeadUrl:"https://p9-dy.byteimg.com/aweme/100x100/2414900010229a84b01eb.jpeg",//作者头像,默认插件中的头像
    isFollowed:false,//是否已经关注,默认false
    authorNameFormatStr:"宇妈艺博",//作者名字
    isLike:false,//是否已经点赞,默认false
    likeCount:"2.5w",//点赞数量,字符串类型,默认""
    commonCount:"5695",//评论数量,字符串类型,默认""
    shareCount:"3.8w",//分享数量,字符串类型,默认""
    musicImgUrl:"https://p9-dy.byteimg.com/aweme/100x100/2414900010229a84b01eb.jpeg",//音乐动画区域内部的图片地址、支持http、https格式,一般设置成作者头像,即与authorHeadUrl的值相同。
    videoTitle:"你好 重新认识一下 我姓 #宦 @身高162 体重90 #性格阳光开朗 15687985462 唯独对你迷茫(太久没玩抖音的人非主流独白)",//视频标题区域的文字
    marqueeText:"@宇妈艺博创作的原声  宇妈艺博创作的原声 宇妈艺博创作的原声",//跑马灯区域的文字,注意这里的文字要超过一行才能有文字从左到右的动画产生。
    previewImg :'http://p9-dy.byteimg.com/large/tos-cn-p-0015/0dab3107ddf64793b8329fecdb3945c6_1575388895.jpeg?from=2563711402_large',//视频缩略图,仅支持http格式
    videoScaleType_i : 0,//数字型,取值范围0到5,默认0,该值用于设置视频的宽高显示模式。0:ZFPlayerScalingModeNone ;1:ZFPlayerScalingModeAspectFit ;  2:ZFPlayerScalingModeAspectFill  ; 3:ZFPlayerScalingModeFill
    videoScaleType_a : 0,//数字型,取值范围0到5,默认0,该值用于设置视频的宽高显示模式。0:SCREEN_SCALE_DEFAULT ;1:SCREEN_SCALE_16_9 ;  2:SCREEN_SCALE_4_3  ; 3:SCREEN_SCALE_MATCH_PARENT ; 4:SCREEN_SCALE_ORIGINAL ; 5:SCREEN_SCALE_CENTER_CROP
    goods : {
       img : '',
       title : ''
    },
    footlist : {
       img : '',
       title : ''
    }
}

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.setVideoDatas({
    videos : [{...}]
},function(ret,err){
    alert(JSON.stringify(ret,err));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

addVideoDatas

添加分页数据

addVideoDatas({params}, callback(ret,err))

params

videos:

  • 类型:JSON 对象
  • 描述:(必填项)视频播放列表(最少传入1条记录)。
{
    vid : new Date().getTime()+0,
    videoUrl : 'http://vfx.mtime.cn/Video/2019/02/04/mp4/190204084208765161.mp4',//视频url地址 
    authorHeadUrl:"https://p9-dy.byteimg.com/aweme/100x100/2414900010229a84b01eb.jpeg",//作者头像,默认插件中的头像
    isFollowed:false,//是否已经关注,默认false
    authorNameFormatStr:"宇妈艺博",//作者名字
    isLike:false,//是否已经点赞,默认false
    likeCount:"2.5w",//点赞数量,字符串类型,默认""
    commonCount:"5695",//评论数量,字符串类型,默认""
    shareCount:"3.8w",//分享数量,字符串类型,默认""
    musicImgUrl:"https://p9-dy.byteimg.com/aweme/100x100/2414900010229a84b01eb.jpeg",//音乐动画区域内部的图片地址、支持http、https格式,一般设置成作者头像,即与authorHeadUrl的值相同。
    videoTitle:"你好 重新认识一下 我姓 #宦 @身高162 体重90 #性格阳光开朗 15687985462 唯独对你迷茫(太久没玩抖音的人非主流独白)",//视频标题区域的文字
    marqueeText:"@宇妈艺博创作的原声  宇妈艺博创作的原声 宇妈艺博创作的原声",//跑马灯区域的文字,注意这里的文字要超过一行才能有文字从左到右的动画产生。
    previewImg :'http://p9-dy.byteimg.com/large/tos-cn-p-0015/0dab3107ddf64793b8329fecdb3945c6_1575388895.jpeg?from=2563711402_large',//视频缩略图,仅支持http格式
    videoScaleType_i : 0,//数字型,取值范围0到5,默认0,该值用于设置视频的宽高显示模式。0:ZFPlayerScalingModeNone ;1:ZFPlayerScalingModeAspectFit ;  2:ZFPlayerScalingModeAspectFill  ; 3:ZFPlayerScalingModeFill
    videoScaleType_a : 0,//数字型,取值范围0到5,默认0,该值用于设置视频的宽高显示模式。0:SCREEN_SCALE_DEFAULT ;1:SCREEN_SCALE_16_9 ;  2:SCREEN_SCALE_4_3  ; 3:SCREEN_SCALE_MATCH_PARENT ; 4:SCREEN_SCALE_ORIGINAL ; 5:SCREEN_SCALE_CENTER_CROP
    goods : {
       img : '',
       title : ''
    },
    footlist : {
       img : '',
       title : ''
    }
}

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.addVideoDatas({
    videos : [{...}]
},function(ret,err){
    alert(JSON.stringify(ret,err));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

delVideoByIndex

根据ID删除播放数据

delVideoByIndex({params},callback(ret,err))

params

index:

  • 类型:数字型
  • 描述:(可选项)需要删除数据的序号。
  • 默认值:-1(删除当前的)

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.delVideoByIndex();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setLikeCount

设置当前页的点赞数量。

setLikeCount({params},callback(ret,err))

params

likeCountStr:

  • 类型:字符串型
  • 描述:(必填项)点赞数量,字符串类型,若点赞数量过大,可将数量转为字符串,如1.5W等。本参数最大字符数量为5,即本字符串不能超过5个字符。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.setLikeCount({
    likeCountStr : '111W'
},function(ret,err){
    alert(JSON.stringify(ret,err));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setCommonCount

设置当前页的评论数量。

setCommonCount({params},callback(ret,err))

params

commonCountStr:

  • 类型:字符串型
  • 描述:(必填项)评论数量,字符串类型,若评论数量过大,可将数量转为字符串,如1.5W等。本参数最大字符数量为5,即本字符串不能超过5个字符。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.setCommonCount({
    commonCountStr : '111W'
},function(ret,err){
    alert(JSON.stringify(ret,err));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setShareCount

设置当前页的分享数量。

setShareCount({params},callback(ret,err))

params

shareCountStr:

  • 类型:字符串型
  • 描述:(必填项)分享数量,字符串类型,若分享数量过大,可将数量转为字符串,如1.5W等。本参数最大字符数量为5,即本字符串不能超过5个字符。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.setShareCount({
    shareCountStr : '111W'
},function(ret,err){
    alert(JSON.stringify(ret,err));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

play

播放已暂停的视频。

play(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.play();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

pause

暂停已播放的视频。

pause(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.pause();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

clearCache

清楚播放器缓存数据。

clearCache(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
    cacheSize : 0,
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.clearCache(function(ret,err){
    alert(JSON.stringify(ret,err));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

playNext

播放下一个视频。

playNext(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.playNext();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

playPrevious

播放上一个视频。

playPrevious(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg : ''
}

示例代码

var demo = api.require('douYinSlidePlayer');
demo.playPrevious();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/8