# 萤石云对接快速参考 > **快速参考文档** - 5分钟了解核心要点 --- ## 🚀 快速开始 ### 1. 文件清单 ``` ✅ src/pages/visual/index.vue # 监控页面 ✅ src/components/EzvizVideoPlayerSimple.vue # 播放器组件 ✅ src/static/html/ezviz-iframe.html # iframe HTML ✅ src/utils/ezvizTokenManager.js # Token管理 ``` ### 2. 配置清单 ```json // pages.json - 横屏配置 { "path": "pages/visual/index", "style": { "pageOrientation": "landscape" // 横屏 } } // manifest.json - 内存配置 { "app-plus": { "compatible": { "largeHeap": true // 512MB } } } ``` ### 3. 核心代码(3步完成) ```javascript // 步骤1: 获取 AccessToken const accessToken = await tokenManager.getValidAccessToken() // 步骤2: 准备配置 const config = { accessToken: accessToken, play_url: "ezopen://open.ys7.com/K74237657/1.hd.live" } // 步骤3: 初始化播放器 this.ezstate = true await this.$nextTick() this.$refs.playerVideoRef.initEzuikit(config) ``` --- ## 📐 技术架构 ``` Vue页面 → web-view → 本地HTML → 萤石云iframe ↓ ↓ ↓ ↓ 管理状态 URL传参 解析参数 官方播放器 ``` --- ## 🔑 关键参数 ### ezopen地址格式 ``` ezopen://open.ys7.com/{设备序列号}/{通道号}.{清晰度}.live 示例: ezopen://open.ys7.com/K74237657/1.hd.live ↑ ↑ ↑ 设备序列号 通道 清晰度(hd/sd) ``` ### AccessToken获取 ```javascript // API: https://open.ys7.com/api/lapp/token/get // 自动管理(推荐) const token = await tokenManager.getValidAccessToken() // 有效期:2小时 // 自动缓存:提前1小时刷新 ``` --- ## 🐛 常见问题速查 | 问题 | 原因 | 解决方案 | |------|------|----------| | 黑屏 | AccessToken过期 | `tokenManager.getValidAccessToken()` | | 崩溃 | 内存不足 | 使用iframe方案 + largeHeap:true | | 变形 | 容器比例错误 | padding-top: 56.25% (16:9) | | ref undefined | 组件未渲染 | 先设置ezstate=true,再await $nextTick() | | 加载慢 | 高清占用大 | 切换标清: .sd.live | --- ## 💡 核心解决方案 ### 问题1:OutOfMemoryError ```javascript // ❌ 不要加载本地SDK(~20MB) // ✅ 使用官方iframe(内存占用↓90%) ``` ### 问题2:画面变形 ```scss // ✅ 使用padding-top锁定16:9 .video-content { &::before { content: ''; display: block; padding-top: 56.25%; /* 16:9 */ } } ``` ### 问题3:组件引用错误 ```javascript // ✅ 正确顺序 this.ezstate = true // 1. 先渲染 await this.$nextTick() // 2. 等待DOM this.$refs.player.init() // 3. 再调用 ``` --- ## 📊 性能对比 | 方案 | 内存占用 | 稳定性 | 加载速度 | |------|---------|--------|----------| | 本地SDK | 256MB+ | ❌ 崩溃 | 慢 | | **iframe(最终)** | **~80MB** | **✅ 稳定** | **快** | --- ## 🎯 一键复制代码 ### 播放器初始化(完整版) ```javascript async getVideoData() { try { // 1. 获取token let accessToken try { accessToken = await tokenManager.getValidAccessToken() } catch (error) { accessToken = "backup-token" // 备用 } // 2. 配置参数 const config = { accessToken: accessToken, play_url: "ezopen://open.ys7.com/K74237657/1.hd.live" } // 3. 渲染组件 this.ezstate = true await this.$nextTick() // 4. 初始化播放器 if (this.$refs.playerVideoRef) { this.$refs.playerVideoRef.initEzuikit(config) } } catch (error) { console.error('播放器初始化失败:', error) } } ``` ### 刷新播放器 ```javascript refresh() { this.$refs.playerVideoRef.refresh() } ``` ### 切换清晰度 ```javascript // 高清 play_url: "ezopen://open.ys7.com/K74237657/1.hd.live" // 标清(省流量) play_url: "ezopen://open.ys7.com/K74237657/1.sd.live" ``` --- ## 📱 调试技巧 ### 查看日志 ```bash # BlueStacks + ADB adb logcat | grep -i "console\|chromium" ``` ### Chrome远程调试 ``` chrome://inspect/#devices ``` ### 关键日志点 ```javascript console.log('AccessToken:', token.substring(0, 20)) console.log('PlayUrl:', play_url) console.log('组件ref:', this.$refs.playerVideoRef) ``` --- ## 🔗 相关链接 - 📖 [完整指南](./萤石云APP对接完整指南.md) - 🌐 [萤石云开放平台](https://open.ys7.com/) - 📚 [Uni-app文档](https://uniapp.dcloud.net.cn/) --- ## ✅ 检查清单 部署前确认: ``` □ 已配置 AppKey 和 AppSecret □ 已获取设备序列号和验证码 □ pages.json 配置横屏 (pageOrientation: landscape) □ manifest.json 启用大内存 (largeHeap: true) □ 所有必需文件已添加 □ tokenManager 正常工作 □ 测试播放功能正常 ``` --- **最后更新:** 2025-10-06 **快速参考版本:** v1.0 --- 需要详细说明?查看 → [萤石云APP对接完整指南.md](./萤石云APP对接完整指南.md)