Appearance
IPCPlayer - DEMO
1. 引入 js
<script src="https://webapi.onewo.com/JSSDK/IPCPlayer/V3.2"></script>
注意:
在框架内使用如果有以下异常
If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.
是因为自定义标签和框架内标签冲突 框架无法识别 需配置插件
以下以 vue 为例
// Vite - vite.config.js export default defineConfig({ plugins: [ vue({ template: { // 添加以下内容 compilerOptions: { //将所有以ipc-开头的标签作为自定义元素处理 isCustomElement: (tag) => tag.startsWith("ipc-"), }, }, }), ], });
// Vue CLI - vue.config.js module.exports = { chainWebpack: (config) => { config.module .rule("vue") .use("vue-loader") .tap((options) => ({ ...options, // 其他配置没有则无需 // 添加以下内容 compilerOptions: { //将所有以ipc-开头的标签作为自定义元素处理 isCustomElement: (tag) => tag.startsWith("ipc-"), }, })); }, };
2.使用标签并配置 props
<body>
<ipc-player id="player1" mode="grid-PTZ" />
</body>
3.获取组件对象
const player1 = document.getElementById("player1");
4.监听初始化事件
let playerArray; // 由 PANE<窗格> 组成的窗格数组
let gridIns; // 宫格实例 该对象上挂载了 窗格控制 相关方法
player1.addEventListener("initEvent", (emit) => {
// 监听初始化事件 获取窗格数组以及宫格实例
playerArray = emit.detail[0].panes;
gridIns = emit.detail[0].gridIns;
});
5.播放视频
playerArray[0].url = "wss://视频地址"; // 索引为0 表示在1号窗格播放视频
6.宫格实例操作
gridIns.PTZShow(true) // 展开云台控制面板
gridIns.ALLStop() // 所有窗格全部停止播放
......
7.播放器实例操作
先获取指定窗格的播放器实例 ( 每个
PANE<窗格>
对象 都包含一个播放器实例)// 假定需要对3号窗格播放器实例进行操作 const pane3PlayerIns = playerArray[2].playerIns; // 索引为2 表示获取3号窗格对象上的playerIns
再对 3 号窗格的播放器实例进行操作
pane3PlayerIns.pause(); // 暂停3号窗格的视频播放 pane3PlayerIns.screenshot(); // 对3号窗格视频进行截图 pane3PlayerIns.fullscreen(); // 3号窗格全屏 ......