ai-clone/frontend-ai/unpackage/dist/build/mp-weixin/pages/phone-call/phone-call.js

2 lines
12 KiB
JavaScript
Raw Permalink Normal View History

"use strict";const e=require("../../common/vendor.js"),t=require("../../config/api.js"),o=require("../../common/assets.js"),i={data:()=>({API_BASE:t.API_BASE,lastUserId:null,loading:!1,videos:[],selectedVideoId:"",selectedVideoName:"",selectedVideoUrl:"",selectedVoiceId:"",selectedDialect:"",selectedLanguageHint:"",selectedLanguageHintLabel:"",languageHintOptions:["中文(zh)","英文(en)","法语(fr)","德语(de)","日语(ja)","韩语(ko)","俄语(ru)"],dialectOptions:["广东话","东北话","甘肃话","贵州话","河南话","湖北话","江西话","闽南话","宁夏话","山西话","陕西话","山东话","上海话","四川话","天津话","云南话"],callStarted:!1,callStatus:"视频通话中",callDuration:"00:00",callStartTime:null,durationTimer:null,messages:[],scrollTop:0,isRecording:!1,isProcessing:!1,isSpeaking:!1,processingText:"处理中...",recorderManager:null,audioFilePath:"",audioContext:null,showSettingsDialog:!1,dialogMemoryIdentity:"",dialogMemoryInfo:"",dialogMemoryCatchphrase:""}),onLoad(){console.log("[PhoneCall] 页面加载");const t=e.index.getStorageSync("userId");this.lastUserId=t,this.loadVideos(),this.initRecorder(),this.initAudioContext()},onShow(){console.log("[PhoneCall] 页面显示");const t=e.index.getStorageSync("userId");this.lastUserId=t,this.callStarted||this.$nextTick((()=>{setTimeout((()=>{this.loadVideos()}),100)}))},onUnload(){this.cleanup()},methods:{async loadVideos(){this.loading=!0;const t=e.index.getStorageSync("userId")||"",o=e.index.getStorageSync("token")||"";e.index.request({url:`${this.API_BASE}/api/photo-revival/videos`,method:"GET",header:{"X-User-Id":t,Authorization:o?`Bearer ${o}`:""},success:e=>{if(console.log("[PhoneCall] 视频列表响应状态码:",e.statusCode),console.log("[PhoneCall] 视频列表响应数据:",e.data),console.log("[PhoneCall] 数据类型:",typeof e.data),200===e.statusCode){let t=[];Array.isArray(e.data)?t=e.data:e.data&&Array.isArray(e.data.data)?t=e.data.data:e.data&&e.data.videos&&Array.isArray(e.data.videos)&&(t=e.data.videos),t=t.filter((e=>{const t=e.name&&(e.name.startsWith("生成失败")||e.name.startsWith("生成失败:")),o=e.edited_video_url||e.video_url||e.local_video_path||e.videoUrl||e.localVideoPath,i=o&&""!==o.trim();return!t&&i})),this.videos=t,console.log("[PhoneCall] 加载视频列表成功:",this.videos.length),console.log("[PhoneCall] 视频列表:",this.videos)}else console.error("[PhoneCall] 响应状态码异常:",e.statusCode)},fail:t=>{console.error("[PhoneCall] 加载视频列表失败:",t),e.index.showToast({title:"加载失败",icon:"none"})},complete:()=>{this.loading=!1}})},selectVideo(e){console.log("[PhoneCall] 选择视频:",e),this.selectedVideoId=e.id,this.selectedVideoName=e.name||"复活视频",this.selectedVideoUrl=e.edited_video_url||e.local_video_path||e.video_url,this.selectedVoiceId=e.voice_id,this.selectedDialect="",this.selectedLanguageHint="",this.selectedLanguageHintLabel="",console.log("[PhoneCall] 选择视频:",this.selectedVideoId,"名称:",this.selectedVideoName),console.log("[PhoneCall] 视频URL:",this.selectedVideoUrl)},onDialectChange(e){this.selectedDialect=this.dialectOptions[e.detail.value]||""},onLanguageHintChange(e){const t=this.languageHintOptions[e.detail.value]||"";this.selectedLanguageHintLabel=t;const o=t.match(/\(([^)]+)\)/);this.selectedLanguageHint=o&&o[1]?o[1]:""},startCall(){if(!this.selectedVideoId)return void e.index.showToast({title:"请先选择视频",icon:"none"});console.log("[PhoneCall] 准备视频通话视频ID:",this.selectedVideoId);const t=this.videos.find((e=>e.id===this.selectedVideoId));if(!t)return void e.index.showToast({title:"视频信息丢失",icon:"none"});const o=t.edited_video_url||t.videoUrl||t.local_video_path||t.video_url||t.localVideoPath||"",i=t.name||"复活视频",s=this.selectedVoiceId||"";console.log("[PhoneCall] 跳转参数:",{videoId:this.selectedVideoId,videoName:i,videoUrl:o,voiceId:s}),e.index.navigateTo({url:`/pages/video-call-new/video-call-new?videoId=${this.selectedVideoId}&videoName=${encodeURIComponent(i)}&video