画面问题
This commit is contained in:
@@ -131,7 +131,14 @@
|
||||
</div>
|
||||
|
||||
<div v-else class="upload-preview">
|
||||
<video :src="videoState.uploadedVideo" controls class="preview-video-player"></video>
|
||||
<video
|
||||
:src="videoState.uploadedVideo"
|
||||
controls
|
||||
playsinline
|
||||
preload="metadata"
|
||||
class="preview-video-player"
|
||||
@error="handleVideoError"
|
||||
></video>
|
||||
<p class="upload-filename">{{ videoState.videoFile?.name }}</p>
|
||||
<button class="change-video-btn" @click="replaceVideo">更换</button>
|
||||
</div>
|
||||
@@ -262,6 +269,7 @@ const {
|
||||
handleSelectFromLibrary,
|
||||
handleVideoSelect,
|
||||
handleVideoLoaded,
|
||||
handleVideoError,
|
||||
replaceVideo,
|
||||
|
||||
// UI 辅助方法
|
||||
|
||||
@@ -59,6 +59,11 @@ export function useDigitalHumanGeneration() {
|
||||
return
|
||||
}
|
||||
|
||||
// 释放旧的 blob URL
|
||||
if (videoState.value.uploadedVideo && videoState.value.uploadedVideo.startsWith('blob:')) {
|
||||
URL.revokeObjectURL(videoState.value.uploadedVideo)
|
||||
}
|
||||
|
||||
videoState.value.videoFile = file
|
||||
videoState.value.uploadedVideo = URL.createObjectURL(file)
|
||||
videoState.value.selectedVideo = null
|
||||
@@ -119,6 +124,10 @@ export function useDigitalHumanGeneration() {
|
||||
}
|
||||
|
||||
function resetVideoState(): void {
|
||||
// 释放 blob URL 避免内存泄漏
|
||||
if (videoState.value.uploadedVideo && videoState.value.uploadedVideo.startsWith('blob:')) {
|
||||
URL.revokeObjectURL(videoState.value.uploadedVideo)
|
||||
}
|
||||
videoState.value.uploadedVideo = ''
|
||||
videoState.value.videoFile = null
|
||||
videoState.value.selectedVideo = null
|
||||
|
||||
@@ -290,6 +290,11 @@ export function useIdentifyFaceController() {
|
||||
digitalHuman.videoState.value.previewVideoUrl = videoUrl
|
||||
}
|
||||
|
||||
function handleVideoError(event: Event): void {
|
||||
console.error('视频加载失败:', event)
|
||||
message.error('视频无法播放,请尝试其他视频文件')
|
||||
}
|
||||
|
||||
// ==================== UI 工具方法 ====================
|
||||
|
||||
function formatDuration(seconds: number): string {
|
||||
@@ -347,6 +352,7 @@ export function useIdentifyFaceController() {
|
||||
handleSelectFromLibrary,
|
||||
handleVideoSelect,
|
||||
handleVideoLoaded,
|
||||
handleVideoError,
|
||||
|
||||
// UI 工具
|
||||
formatDuration,
|
||||
|
||||
Reference in New Issue
Block a user