更新记录
1.0.1(2025-11-27)
ios横竖屏切换完善 static目录下有uts模版参考
jx-player
超级播放器1.0.1版本
1.0.0(2025-11-25)
新插件发布
jx-player
超级播放器1.0.0版本
平台兼容性
uni-app(4.64)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | 5.0 | 1.0.1 | 13 | 1.0.1 | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.35)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|---|
| - | - | 5.0 | 1.0.1 | 13 | 1.0.1 | - | - |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | × | √ |
jx-player
开发文档
模块概述
1.支持点播,直播,抖音滑动播放
2.缓存,分集播放 支持 m3u8缓存
3.android 支持视频格式 m3u8,flv,mp4,webm,ts,mpd,mkv 支持rtmp直播
4.ios 支持视频格式 m3u8,flv,mp4,mov 支持rtmp直播
5.component 等自定义控件
<template>
<jx-player ref="video" style="width: 100%;height: 100%"></jx-player>
</template>
<script>
import * as UTSPlayer from "../../uni_modules/jx-player";
export default {
data() {
return {
}
},
onLoad() {
},
onReady() {
UTSPlayer.onCallback(function (res) {
let ee = JSON.parse(result) as UTSJSONObject;
let code = ee["code"];
// 0 播放进度 progress position duration
// 1 滚动到播放记录返回 currentIndex
// 2 滑动到最后一个视频
// 3 播放
// 4 暂停
// 5 缓冲
// 6 准备播放返回
// 7 网络错误
// 8 播放完成
// 9 开始播放中止
// 10 当前播放器的状态
// 11 播放完成
// 13 方向旋转事件 返回 isFullscreen(boolean)
// 14 下拉刷新
// 15 上拉刷新
// 19 向下滑动返回
// 20 向上滑动返回
});
UTSPlayer.setVideoData(res);
},
methods: {
}
}
</script>
<style>
</style>
onCallback
设置全局事件监听返回
示例代码
UTSPlayer.onCallback(function (res) {
let ee = JSON.parse(result) as UTSJSONObject;
let code = ee["code"];
// 0 播放进度 progress position duration
// 1 滚动到播放记录返回 currentIndex
// 2 滑动到最后一个视频
// 3 播放
// 4 暂停
// 5 缓冲
// 6 准备播放返回
// 7 网络错误
// 8 播放完成
// 9 开始播放中止
// 10 当前播放器的状态
// 11 播放完成
// 13 方向旋转事件 返回 isFullscreen(boolean)
// 14 下拉刷新
// 15 上拉刷新
// 19 向下滑动返回
// 20 向上滑动返回
});
setVideoData
设置初始化数据
示例代码
格式请参考示例代码
const test_data = {
index: 0, //首次播放索引
coreType: 1, //内核 0 ios(AVPlayer) android(exo) 1 ijk
scaleMode: 0, //0 :自动调节 默认 1自适应 2 全屏 有切边 3 全屏 android起作用
openCache: true, //是否开启缓存
showLoading: false, //缓冲时加载是否显示
freshUp: false, //上拉刷新开启
freshDown: false, //下拉刷新开启
scrollEnabled: true, //屏幕是否开启滚动
isLoop: true, //是否循环播放 true 视频重复循环播放 false 播放完成自动下一个视频
portraitTopStyles: topStyles.topStyles, //纵向 不随屏滚动控件样式 参考demo
portraitStyles: portStyles.portStyles, //纵向 随屏滚动控件样式 参考demo
landscapeStyles: landStyles.landStyles, //横向全屏 控件样式 参考demo
data: vdata.videoData
};
UTSPlayer.setVideoData(JSON.stringify(initData));
start
开始播放
示例代码
UTSPlayer.start();
pause
暂停播放
示例代码
UTSPlayer.pause();
resume
恢复播放
示例代码
UTSPlayer.pause();
next
播放器下一集
示例代码
UTSPlayer.next(false);//是否显示动态效果
prev
播放器上一集
示例代码
UTSPlayer.prev(false);//是否显示动态效果
replay
重新播放
示例代码
UTSPlayer.replay();
playIndex
播放索引视频
示例代码
UTSPlayer.playIndex(1);
isFullScreen
是否全屏播放
示例代码
let isFullScreen = UTSPlayer.isFullScreen();
setVolume
设置音量
示例代码
UTSPlayer.setVolume(1.0);
setMuted
设置静音
示例代码
UTSPlayer.setMuted(true);
setSpeed
设置倍速
示例代码
UTSPlayer.setSpeed(1.0);
rotate
旋转方向
示例代码
UTSPlayer.rotate();
clean
销毁播放器
示例代码
UTSPlayer.clean();
setScrollEnabled
播放器上下滚动是否开启
示例代码
UTSPlayer.setScrollEnabled(true);
duration
获取视频时长
示例代码
let duration = UTSPlayer.duration();
position
获取播放位置
示例代码
let position = UTSPlayer.position();
updatePortraitHeight
调整视频高度 向上抬起
示例代码
UTSPlayer.updatePortraitHeight(500);
screenShot
获取视频截图 返回base64
示例代码
let screenShot = UTSPlayer.screenShot();
addCaches
添加缓冲 数据与视频数据数组相同
示例代码
UTSPlayer.addCaches(JSON.stringify({data:[视频数据]}));
clearCache
清理缓冲
示例代码
UTSPlayer.clearCache();
openDanmaku
打开弹幕面板 点播播放模式都可用
示例代码
UTSPlayer.openDanmaku();
closeDanmaku
关闭弹幕面板 点播播放模式都可用
示例代码
UTSPlayer.closeDanmaku();
clearDanmaku
清理弹幕 点播播放模式都可用
示例代码
UTSPlayer.clearDanmaku();
addDanmaku
发送弹幕 点播播放模式都可用
示例代码
let data = {'time':1000,'text':'弹幕','color':'#FFFFFF','size':14};
UTSPlayer.addDanmaku(JSON.stringify(data));
addDanmakus
发送一组弹幕 点播播放模式都可用
示例代码
let data = {'data':[{'time':1000,'text':'弹幕','color':'#FFFFFF','size':14}]};
UTSPlayer.addDanmakus(JSON.stringify(data));
addDataAfter
追加视频数据 一般code==2是调用 滑到最后一条数据时调用
示例代码
let data = {data:[{
"vid": 22682,
"title": "没缘分就散",
"desc": '没缘分就散',
"index": 3,
"collectNum": 3,
"commentNum": 4,
"shareNum": 5,
"likeNum": 6,
"isFocus": false,
"isLike": true,
"isCollect": true,
"isLive": true,
"thumb": "",
"url": "",
"avatar": "",
"musicCover": "",
"portraitStyles": [],
"landscapeStyles": []
}]};
UTSPlayer.addDataAfter(JSON.stringify(data));
addDataBefore
往最前添加视频数据
示例代码
let data = {data:[{
"vid": 22682,
"title": "没缘分就散",
"desc": '没缘分就散',
"index": 3,
"collectNum": 3,
"commentNum": 4,
"shareNum": 5,
"likeNum": 6,
"isFocus": false,
"isLike": true,
"isCollect": true,
"isLive": true,
"thumb": "",
"url": "",
"avatar": "",
"musicCover": "",
"portraitStyles": [],
"landscapeStyles": []
}]};
UTSPlayer.addDataBefore(JSON.stringify(data));
insertDataBefore
往索引处添加视频数据
示例代码
let data = {index:2,data:[{
"vid": 22682,
"title": "没缘分就散",
"desc": '没缘分就散',
"index": 3,
"collectNum": 3,
"commentNum": 4,
"shareNum": 5,
"likeNum": 6,
"isFocus": false,
"isLike": true,
"isCollect": true,
"isLive": true,
"thumb": "",
"url": "",
"avatar": "",
"musicCover": "",
"portraitStyles": [],
"landscapeStyles": []
}]};
UTSPlayer.insertDataBefore(JSON.stringify(data));
addPortraitComponent
竖屏添加自定义控件
示例代码
type类型有 top:上部 middle:中部 bottom:底部
let component = {
'x': x,
'y': y,
'w': 60,
'h': 30,
'type': 'middle',
'radius': 10,
'backgroundColor': '#a3270e',
'alpha': 0.8,
'border': 0,
'borderColor': '#E066FF',
'code': code,
'hidden': false,
'autoHidden': true,
'data': { 'x': x, 'y': y, 'w': 60, 'h': 30, 'code': code, 'text': text },
'animation': 0, //隐藏 动画 显示隐藏时起作用 0正常 1左 2右 3上 4下
'texts': [{
'x': 0,
'y': 0,
'w': 60,
'h': 30,
'textSize': 16,
'text': text,
'textColor': '#FFFFFF',
'code': tcode
}],
'pics': [{
'path': getResourcePath('/static/vip.png'),//支持http
'x': 35,
'y': 0,
'w': 25,
'h': 12,
'code': pcode
}]
};
UTSPlayer.addPortraitComponent(JSON.stringify(component));
updatePortraitComponent
竖屏更新自定义控件
示例代码
type类型有 top:上部 middle:中部 bottom:底部
let component = {
'x': x,
'y': y,
'w': 60,
'h': 30,
'type': 'middle',
'radius': 10,
'backgroundColor': '#a3270e',
'alpha': 0.8,
'border': 0,
'borderColor': '#E066FF',
'code': code,
'hidden': false,
'autoHidden': true,
'data': { 'x': x, 'y': y, 'w': 60, 'h': 30, 'code': code, 'text': text },
'animation': 0, //隐藏 动画 显示隐藏时起作用 0正常 1左 2右 3上 4下
'texts': [{
'x': 0,
'y': 0,
'w': 60,
'h': 30,
'textSize': 16,
'text': text,
'textColor': '#FFFFFF',
'code': tcode
}],
'pics': [{
'path': getResourcePath('/static/vip.png'),//支持http
'x': 35,
'y': 0,
'w': 25,
'h': 12,
'code': pcode
}]
};
UTSPlayer.updatePortraitComponent(JSON.stringify(component));
removePortraitComponent
竖屏去除自定义控件 要与添加的自定义控件code值一致
示例代码
type类型有 top:上部 middle:中部 bottom:底部
let component = {
'code': code
};
UTSPlayer.removePortraitComponent(JSON.stringify(component));
addLandscapeComponent
横屏添加自定义控件
示例代码
type类型有 top:上部 middle:中部 bottom:底部
let component = {
'x': x,
'y': y,
'w': 60,
'h': 30,
'type': 'middle',
'radius': 10,
'backgroundColor': '#a3270e',
'alpha': 0.8,
'border': 0,
'borderColor': '#E066FF',
'code': code,
'hidden': false,
'autoHidden': true,
'data': { 'x': x, 'y': y, 'w': 60, 'h': 30, 'code': code, 'text': text },
'animation': 0, //隐藏 动画 显示隐藏时起作用 0正常 1左 2右 3上 4下
'texts': [{
'x': 0,
'y': 0,
'w': 60,
'h': 30,
'textSize': 16,
'text': text,
'textColor': '#FFFFFF',
'code': tcode
}],
'pics': [{
'path': getResourcePath('/static/vip.png'),//支持http
'x': 35,
'y': 0,
'w': 25,
'h': 12,
'code': pcode
}]
};
UTSPlayer.addLandscapeComponent(JSON.stringify(component));
updateLandscapeComponent
横屏更新自定义控件
示例代码
type类型有 top:上部 middle:中部 bottom:底部
let component = {
'x': x,
'y': y,
'w': 60,
'h': 30,
'type': 'middle',
'radius': 10,
'backgroundColor': '#a3270e',
'alpha': 0.8,
'border': 0,
'borderColor': '#E066FF',
'code': code,
'hidden': false,
'autoHidden': true,
'data': { 'x': x, 'y': y, 'w': 60, 'h': 30, 'code': code, 'text': text },
'animation': 0, //隐藏 动画 显示隐藏时起作用 0正常 1左 2右 3上 4下
'texts': [{
'x': 0,
'y': 0,
'w': 60,
'h': 30,
'textSize': 16,
'text': text,
'textColor': '#FFFFFF',
'code': tcode
}],
'pics': [{
'path': getResourcePath('/static/vip.png'),//支持http
'x': 35,
'y': 0,
'w': 25,
'h': 12,
'code': pcode
}]
};
UTSPlayer.updateLandscapeComponent(JSON.stringify(component));
removeLandscapeComponent
横屏去除自定义控件 要与添加的自定义控件code值一致
示例代码
let component = {
'code': code
};
UTSPlayer.removeLandscapeComponent(JSON.stringify(component));
updateVideoModelAtIndex
更新自定位置视频数据
示例代码
let data = {
'index': 1,
'data': {
"vid": 22682,
"title": "没缘分就散",
"desc": '没缘分就散',
"index": 3,
"collectNum": 3,
"commentNum": 4,
"shareNum": 5,
"likeNum": 6,
"isFocus": false,
"isLike": true,
"isCollect": true,
"isLive": true,
"thumb": "",
"url": "",
"avatar": "",
"musicCover": ""
}
};
UTSPlayer.updateVideoModelAtIndex(JSON.stringify(data));
updateCurrentModel
更新当前视频数据
示例代码
let data = {
'data': {
"vid": 22682,
"title": "没缘分就散",
"desc": '没缘分就散',
"index": 3,
"collectNum": 3,
"commentNum": 4,
"shareNum": 5,
"likeNum": 6,
"isFocus": false,
"isLike": true,
"isCollect": true,
"isLive": true,
"thumb": "",
"url": "",
"avatar": "",
"musicCover": ""
}
};
UTSPlayer.updateCurrentModel(JSON.stringify(data));
seekTo
滑动到自定位置
示例代码
UTSPlayer.seekTo(1000);
setScreenScaleType
设置视频自适应模式
示例代码
//0 :自动调节 默认 1自适应 2 全屏 有切边 3 全屏 android起作用
UTSPlayer.setScreenScaleType(1);
getCurrentItem
获取当前播放视频数据
示例代码
let item = UTSPlayer.getCurrentItem();
getSpeed
获取视频倍速
示例代码
let speed = UTSPlayer.getSpeed();
stopFresh
停止刷新 滑动播放模式可用
示例代码
UTSPlayer.stopFresh();
getResourcePath
获取资源路径
示例代码
红包进度
UTSPlayer.getResourcePath('/static/logo.png');

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 3676
赞赏 0
下载 11455964
赞赏 1812
赞赏
京公网安备:11010802035340号