|
|
@@ -17,12 +17,6 @@
|
|
|
style="width: 400px"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="播放方式">
|
|
|
- <el-select v-model="cfConfig.playMode" style="width: 200px">
|
|
|
- <el-option label="iframe 嵌入" value="iframe" />
|
|
|
- <el-option label="HLS 播放" value="hls" />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button type="primary" @click="playCloudflare">播放</el-button>
|
|
|
<el-button @click="generateCfUrl">生成地址</el-button>
|
|
|
@@ -95,7 +89,12 @@
|
|
|
<div class="ptz-btn" @mousedown="handlePTZ('DOWN')" @mouseup="handlePTZStop" @mouseleave="handlePTZStop">
|
|
|
<el-icon><Bottom /></el-icon>
|
|
|
</div>
|
|
|
- <div class="ptz-btn" @mousedown="handlePTZ('DOWN_RIGHT')" @mouseup="handlePTZStop" @mouseleave="handlePTZStop">
|
|
|
+ <div
|
|
|
+ class="ptz-btn"
|
|
|
+ @mousedown="handlePTZ('DOWN_RIGHT')"
|
|
|
+ @mouseup="handlePTZStop"
|
|
|
+ @mouseleave="handlePTZStop"
|
|
|
+ >
|
|
|
<el-icon><BottomRight /></el-icon>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -105,13 +104,7 @@
|
|
|
<div class="control-label">
|
|
|
<span>速度: {{ ptzSpeed }}</span>
|
|
|
</div>
|
|
|
- <el-slider
|
|
|
- v-model="ptzSpeed"
|
|
|
- :min="10"
|
|
|
- :max="100"
|
|
|
- :step="10"
|
|
|
- :show-tooltip="true"
|
|
|
- />
|
|
|
+ <el-slider v-model="ptzSpeed" :min="10" :max="100" :step="10" :show-tooltip="true" />
|
|
|
</div>
|
|
|
|
|
|
<!-- 缩放控制 -->
|
|
|
@@ -152,7 +145,7 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 当前状态 -->
|
|
|
- <div class="status-section">
|
|
|
+ <!-- <div class="status-section">
|
|
|
<el-descriptions title="当前状态" :column="3" border>
|
|
|
<el-descriptions-item label="播放器类型">{{ currentPlayerType }}</el-descriptions-item>
|
|
|
<el-descriptions-item label="iframe 模式">{{ useIframe ? '是' : '否' }}</el-descriptions-item>
|
|
|
@@ -161,7 +154,7 @@
|
|
|
<el-text truncated style="max-width: 800px">{{ currentSrc || '-' }}</el-text>
|
|
|
</el-descriptions-item>
|
|
|
</el-descriptions>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
|
|
|
<!-- 日志区域 -->
|
|
|
<div class="log-section">
|
|
|
@@ -205,8 +198,7 @@ const playerRef = ref<InstanceType<typeof VideoPlayer>>()
|
|
|
// Cloudflare Stream 配置
|
|
|
const cfConfig = reactive({
|
|
|
videoId: '3c1ae1949e76f200feef94b8f7d093ca',
|
|
|
- customerDomain: 'customer-pj89kn2ke2tcuh19.cloudflarestream.com',
|
|
|
- playMode: 'iframe' as 'iframe' | 'hls'
|
|
|
+ customerDomain: 'customer-pj89kn2ke2tcuh19.cloudflarestream.com'
|
|
|
})
|
|
|
const cfGeneratedUrl = ref('')
|
|
|
|
|
|
@@ -257,18 +249,11 @@ function playCloudflare() {
|
|
|
}
|
|
|
|
|
|
currentVideoId.value = cfConfig.videoId
|
|
|
- useIframe.value = cfConfig.playMode === 'iframe'
|
|
|
-
|
|
|
- if (cfConfig.playMode === 'hls') {
|
|
|
- const domain = cfConfig.customerDomain || 'customer-xxx.cloudflarestream.com'
|
|
|
- currentSrc.value = `https://${domain}/${cfConfig.videoId}/manifest/video.m3u8`
|
|
|
- currentPlayerType.value = 'hls'
|
|
|
- } else {
|
|
|
- currentSrc.value = ''
|
|
|
- currentPlayerType.value = 'cloudflare'
|
|
|
- }
|
|
|
+ useIframe.value = true
|
|
|
+ currentSrc.value = ''
|
|
|
+ currentPlayerType.value = 'cloudflare'
|
|
|
|
|
|
- addLog(`播放 Cloudflare Stream: ${cfConfig.videoId} (${cfConfig.playMode})`, 'success')
|
|
|
+ addLog(`播放 Cloudflare Stream: ${cfConfig.videoId} (iframe)`, 'success')
|
|
|
}
|
|
|
|
|
|
// 生成 Cloudflare URL
|
|
|
@@ -278,11 +263,7 @@ function generateCfUrl() {
|
|
|
return
|
|
|
}
|
|
|
const domain = cfConfig.customerDomain || 'customer-xxx.cloudflarestream.com'
|
|
|
- if (cfConfig.playMode === 'iframe') {
|
|
|
- cfGeneratedUrl.value = `https://${domain}/${cfConfig.videoId}/iframe`
|
|
|
- } else {
|
|
|
- cfGeneratedUrl.value = `https://${domain}/${cfConfig.videoId}/manifest/video.m3u8`
|
|
|
- }
|
|
|
+ cfGeneratedUrl.value = `https://${domain}/${cfConfig.videoId}/iframe`
|
|
|
}
|
|
|
|
|
|
// 复制 URL
|