SDK 的使用包含 【SDK 数据包】和 【SDK 播放器】两部分,本文档以【SDK 播放器】的使用为主要内容,如何获取【SDK 数据包】请查阅 SDK 离线数据包同步到阿里云 OSS & 离线下载教程
目前提供两种方式引入 SDK 文件:
通过 720 云 CDN 引入,地址为:https://ssl-sdk.720static.com/720yun-sdk/prod/720yun-sdk-latest
。
通过自有地址引入,需要先将 SDK 下载到自己服务器/存储上进行部署(将整个压缩包解压后部署)后再引入,下载地址:https://ssl-sdk.720static.com/720yun-sdk/prod/720yun-sdk-latest.zip
<!-- 通过720云CDN引入 -->
<script src="https://ssl-sdk.720static.com/720yun-sdk/prod/720yun-sdk-latest/js/720yun_SDK.js"></script>
<link rel="stylesheet" href="https://ssl-sdk.720static.com/720yun-sdk/prod/720yun-sdk-latest/css/tour.css">
<!-- 通过自有地址引入,域名为示例域名 -->
<script src="https://www.example.com/720yun-sdk/js/720yun_SDK.js"></script>
<link rel="stylesheet" href="https://www.example.com/720yun-sdk/css/tour.css">
<div id="panoContainer"></div>
window.PanoPlayer.setup({
sdkUrl: 'https://ssl-sdk.720static.com/720yun-sdk/prod/720yun-sdk-latest/', // SDK 路径,http/https 开头的完整路径,以 / 结束,这里以720云CDN为例
baseUrl: 'https://ssl-sdk.720static.com/720yun-sdk/example/data/', //数据包路径,http/https 开头的绝对路径
extendData: {}
}, {
// 具体配置参考文档
// startAnimation: 0, //关闭开场动画
// logo: "https://example.com/logo.jpg", //显示自定义 logo
// autoRotate: 0, //关闭自动旋转
// description: 0, //关闭简介按钮
// sceneList: 3, //显示场景切换按钮但默认隐藏场景列表
// fullscreen: 0, //关闭全屏按钮
// vr: 0, //关闭 VR 按钮
// viewSwitch: 0, //关闭视角切换按钮
// gyroscope: 0, //关闭陀螺仪按钮
// dragMode: 1, //默认拖拽模式为正向
// disableSandTable: 1, //关闭沙盘
}).then(player => {
// 初始化完成
console.log('player init complete', player);
// 场景加载完成后的回调
player.openApi.addSceneLoadedListener((partnerId, sceneId) => {
console.log('scene load complete, ', 'partnerId:', partnerId, ', sceneId:', sceneId);
});
window.player = player;
}).catch(err => {
console.error('player init error', err);
});
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<title>SDK Demo</title>
<meta name="referrer" content="always">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,viewport-fit=cover">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="format-detection" content="telephone=no,address=no,email=no">
<meta name="renderer" content="webkit">
<meta name="robots" content="all">
<!-- 引入 sdk -->
<link rel="stylesheet" href="https://ssl-sdk.720static.com/720yun-sdk/prod/720yun-sdk-latest/css/tour.css">
<script src="https://ssl-sdk.720static.com/720yun-sdk/prod/720yun-sdk-latest/js/720yun_SDK.js"></script>
</head>
<body>
<!-- 全景播放器容器 div -->
<div id="panoContainer"></div>
<script>
// 初始化全景,会默认在 id 为 panoContainer 的 div 中渲染全景
window.PanoPlayer.setup({
sdkUrl: 'https://ssl-sdk.720static.com/720yun-sdk/prod/720yun-sdk-latest/', // SDK 路径,http/https 开头的完整路径,以 / 结束,这里以720云CDN为例
baseUrl: 'https://ssl-sdk.720static.com/720yun-sdk/example/data/', //数据包路径,http/https 开头的绝对路径
extendData: {}
}, {
// 具体配置参考文档
startAnimation: 0, //关闭开场动画
logo: "https://example.com/logo.jpg", //显示自定义 logo
autoRotate: 0, //关闭自动旋转
description: 0, //关闭简介按钮
sceneList: 3, //显示场景切换按钮但默认隐藏场景列表
fullscreen: 0, //关闭全屏按钮
vr: 0, //关闭 VR 按钮
viewSwitch: 0, //关闭视角切换按钮
gyroscope: 0, //关闭陀螺仪按钮
dragMode: 1, //默认拖拽模式为正向
disableSandTable: 1, //关闭沙盘
}).then(player => {
// 初始化完成
console.log('player init complete', player);
// 场景加载完成后的回调
player.openApi.addSceneLoadedListener((partnerId, sceneId) => {
console.log('scene load complete, ', 'partnerId:', partnerId, ', sceneId:', sceneId);
});
window.player = player;
}).catch(err => {
console.error('player init error', err);
});
</script>
</body>
</html>
更新当前视角
player.openApi.updateView(
{
fov: 85,
hlookat: 22,
vlookat: 40
}
);
更新当前视角限制
player.openApi.updateViewLimit(
{
fovMin: 50,
fovMax: 120,
hlookatMin: 20,
hlookatMax: 280,
vlookatMin: -45,
vlookatMax: 45
}
);
视角改变回调监听
player.openApi.addViewChangedListener(
(view) => {
console.log('view changed:', view);
}
);
全景点击回调监听
player.openApi.addPlayerClickListener(
(pos) => {
console.log('player clicked:' pos);
}
);
全景中加入图片标记
player.openApi.addImageHotspot(
{
id:'a123',
url:'https://img.com/abc.png',
ath: 10,
atv: -13,
scale: 0.5,
edge: 'bottom',
onClick: (pos) => {
console.log('hotspot clicked:', pos);
}
}
);
删除图片标记
player.openApi.removeImageHotspot('a123');
加入截图回调监听
player.openApi.addSnapshootListener(
(imageBase64) => {
console.log('snapshoot complete:', imageBase64);
}
);
开始截图
截图前需要先添加截图回调,并且在播放器初始化时传入 enableSnapshoot: true
参数到 extendData 中
player.openApi.makeSnapshoot();
获取场景列表信息
获取场景分组信息
[
{
"name": "默认一级分组",
"scenes": [],
"subGroups": [
{
"name": "二级分组-1",
"scenes": [
29388,
38922
]
},
{
"name": "二级分组-2",
"scenes": [
38921
]
}
]
},
{
"name": "新建一级分组",
"scenes": [
29389
],
"subGroups": []
}
]
player.openApi.loadSceneById(32321);
跳转到指定 第三方 ID 的场景
player.openApi.loadSceneByPartnerId("partnerId001");
场景准备完成(开始显示)监听
player.openApi.addSceneReadyListener(
(partnerId, sceneId) => {
console.log('scene load complete, ', 'partnerId:', partnerId, ', sceneId:', sceneId);
}
);
场景加载完成监听
player.openApi.addSceneLoadedListener(
(partnerId, sceneId) => {
console.log('scene load complete, ', 'partnerId:', partnerId, ', sceneId:', sceneId);
}
);
暂停视频讲解
player.openApi.pauseSceneVideo();
恢复视频讲解
player.openApi.resumeSceneVideo();
暂停语音讲解
player.openApi.pauseSceneVoice();
恢复语音讲解
player.openApi.resumeSceneVoice();
暂停全景视频
player.openApi.pausePanoVideo();
恢复全景视频
player.openApi.resumePanoVideo();
暂停嵌入视频
player.openApi.pauseEmbedVideo();
恢复嵌入视频
player.openApi.resumeEmbedVideo();
暂停自动巡游
player.openApi.pauseAutoRotate();
恢复自动巡游
player.openApi.resumeAutoRotate();
暂停字幕滚动
player.openApi.pauseSubtitleScrolling();
恢复字幕滚动
player.openApi.resumeSubtitleScrolling();
暂停背景音乐
player.openApi.pauseBgMusic();
恢复背景音乐
player.openApi.resumeBgMusic();
关闭音频热点播放
player.openApi.closeHotspotAudio();
player.openApi.updatePolygonHotspot(
{
partnerId: "partnerID_xxx",
fillColor: "#ff0000",
visible: true
}
);
player.openApi.updateImageHotspot(
{
partnerId: "partnerID_xxx",
imageUrl: "https://example.com/abc.png",
visible: true
}
);
player.openApi.updateImageHotspot(
{
partnerId: "partnerID_xxx",
visible: false
}
);
player.openApi.updateImageHotspot(
{
partnerId: "partnerID_xxx",
visible: true
}
);
player.openApi.switchToHotspotGroup(123);
console.log("current hotspot group id:", player.openApi.currentHotspotGroupId());
全景视频准备播放监听
player.openApi.addVideoReadyListener(
() => {
console.log('Pano video ready. ');
}
);
全景视频开始播放监听
player.openApi.addVideoPlayListener(
() => {
console.log('Pano video start Play. ');
}
);
全景视频暂停播放监听
player.openApi.addVideoPausedListener(
() => {
console.log('Pano video paused. ');
}
);
全景视频播放完成监听
player.openApi.addVideoCompleteListener(
() => {
console.log('Pano video play complete. ');
}
);