new video to new demo
This commit is contained in:
parent
a20ffbedf6
commit
424b9f3c12
@ -88,15 +88,15 @@ const connectedClients = new Map();
|
||||
// 视频映射配置
|
||||
const videoMapping = {
|
||||
// 'say-6s-m-e': '1-m.mp4',
|
||||
'default': 'bd-1.mp4',
|
||||
'default': 'chane.mp4',
|
||||
// 'say-5s-amplitude': '2.mp4',
|
||||
// 'say-5s-m-e': '4.mp4',
|
||||
'say-5s-m-sw': 'd-0.mp4',
|
||||
// 'say-5s-m-sw': 'd-0.mp4',
|
||||
// 'say-3s-m-sw': '6.mp4',
|
||||
};
|
||||
|
||||
// 默认视频流配置
|
||||
const DEFAULT_VIDEO = 'bd-1.mp4';
|
||||
const DEFAULT_VIDEO = 'chang.mp4';
|
||||
const INTERACTION_TIMEOUT = 10000; // 10秒后回到默认视频
|
||||
|
||||
// 获取视频列表
|
||||
|
||||
@ -16,7 +16,7 @@ export const config = {
|
||||
audio: {
|
||||
model: 'speech-02-hd',
|
||||
voiceSetting: {
|
||||
voice_id: 'yantu-qinggang-3',
|
||||
voice_id: 'yantu-qinggang-demo2-male-4',
|
||||
speed: 1,
|
||||
vol: 1,
|
||||
pitch: 0,
|
||||
|
||||
@ -19,7 +19,7 @@ class WebRTCChat {
|
||||
this.mediaRecorder = null;
|
||||
this.audioChunks = [];
|
||||
this.videoMapping = {};
|
||||
this.defaultVideo = 'bd-1.mp4';
|
||||
this.defaultVideo = 'chang.mp4';
|
||||
this.currentVideoTag = 'default';
|
||||
this.currentVideo = null;
|
||||
this.videoStreams = new Map(); // 存储不同视频的MediaStream
|
||||
@ -429,7 +429,7 @@ class WebRTCChat {
|
||||
// 在应用初始化时预加载常用视频
|
||||
async preloadCommonVideos() {
|
||||
// 获取所有可能需要的视频
|
||||
const videosToPreload = new Set(['bd-1.mp4']);
|
||||
const videosToPreload = new Set(['chang.mp4']);
|
||||
|
||||
// 添加视频映射中的所有视频
|
||||
// Object.values(this.videoMapping).forEach(video => {
|
||||
@ -437,7 +437,7 @@ class WebRTCChat {
|
||||
// });
|
||||
|
||||
// 特别确保添加了5.mp4(从日志看这是常用视频)
|
||||
videosToPreload.add('d-0.mp4');
|
||||
// videosToPreload.add('d-0.mp4');
|
||||
|
||||
// 并行预加载,提高效率
|
||||
const preloadPromises = Array.from(videosToPreload).map(async (videoFile) => {
|
||||
|
||||
@ -68,16 +68,16 @@ async function processAudioQueue() {
|
||||
const sayName = 'say-5s-m-sw'
|
||||
const targetVideo = 'd-0.mp4'
|
||||
// 如果是第一个音频片段,触发视频切换
|
||||
if (isFirstChunk && sayName != window.webrtcApp.currentVideoTag && window.webrtcApp && window.webrtcApp.switchVideoWithReplaceTrack) {
|
||||
try {
|
||||
console.log('--------------触发视频切换:', sayName);
|
||||
window.webrtcApp.switchVideoWithReplaceTrack(targetVideo, 'audio', 'say-5s-m-sw');
|
||||
isFirstChunk = false;
|
||||
window.webrtcApp.currentVideoTag = sayName;
|
||||
} catch (error) {
|
||||
console.error('视频切换失败:', error);
|
||||
}
|
||||
}
|
||||
// if (isFirstChunk && sayName != window.webrtcApp.currentVideoTag && window.webrtcApp && window.webrtcApp.switchVideoWithReplaceTrack) {
|
||||
// try {
|
||||
// console.log('--------------触发视频切换:', sayName);
|
||||
// window.webrtcApp.switchVideoWithReplaceTrack(targetVideo, 'audio', 'say-5s-m-sw');
|
||||
// isFirstChunk = false;
|
||||
// window.webrtcApp.currentVideoTag = sayName;
|
||||
// } catch (error) {
|
||||
// console.error('视频切换失败:', error);
|
||||
// }
|
||||
// }
|
||||
await playAudioData(audioItem.audioData);
|
||||
} else {
|
||||
// 等待一小段时间再检查
|
||||
@ -89,11 +89,11 @@ async function processAudioQueue() {
|
||||
const text = 'default'
|
||||
// await new Promise(resolve => setTimeout(resolve, 500));
|
||||
console.log("音频结束------------------------:", window.webrtcApp.currentVideoTag, isPlaying)
|
||||
if (window.webrtcApp.currentVideoTag != text) {
|
||||
isFirstChunk = true
|
||||
window.webrtcApp.currentVideoTag = text
|
||||
window.webrtcApp.switchVideoWithReplaceTrack(window.webrtcApp.defaultVideo, 'audio', text);
|
||||
}
|
||||
// if (window.webrtcApp.currentVideoTag != text) {
|
||||
// isFirstChunk = true
|
||||
// window.webrtcApp.currentVideoTag = text
|
||||
// window.webrtcApp.switchVideoWithReplaceTrack(window.webrtcApp.defaultVideo, 'audio', text);
|
||||
// }
|
||||
console.log('音频队列处理完成');
|
||||
}
|
||||
|
||||
|
||||
BIN
videos/chang.mp4
Normal file
BIN
videos/chang.mp4
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user