/* Ready-made prompts use reviewed local clips; clicks never create generation jobs. */ (function(){ 'use strict'; const stage=document.querySelector('#stage'),panel=document.querySelector('#menu-presets'),chatPanel=document.querySelector('#chat-presets'); if(!stage||!panel||document.documentElement.classList.contains('content-reader'))return; const presets=[ { "id": "greeting", "label": "打个招呼吧", "title": "打个招呼", "script": "你好呀,我是知微,很高兴见到你。想了解什么,或是随便聊聊,都可以告诉我。", "width": 1920, "height": 1080, "render_profile": "scene-seedance25-v2", "url": "static/assets/zhiwei-menu-presets-20261023-v1/greeting.mp4" }, { "id": "introduction", "label": "认识一下知微", "title": "认识知微", "script": "我是知微,你的虚拟工场 AI 向导。我可以陪你浏览新闻、产品、案例和服务,也可以和你聊聊新想法。", "width": 1920, "height": 1080, "render_profile": "scene-seedance25-v2", "url": "static/assets/zhiwei-menu-presets-20261023-v1/introduction.mp4" }, { "id": "how-to", "label": "教我怎么用", "title": "怎么使用", "script": "点下方菜单浏览内容,点输入就能和我对话。想找某个产品或案例,直接告诉我名字就好。", "width": 1920, "height": 1080, "render_profile": "scene-seedance25-v2", "url": "static/assets/zhiwei-menu-presets-20261023-v1/how-to.mp4" }, { "id": "small-talk", "label": "聊聊项目想法", "title": "项目想法", "script": "先从一个轻松的话题开始吧。最近有什么有趣的发现,或者想尝试的新点子?我在听。", "width": 1920, "height": 1080, "render_profile": "scene-seedance25-v2", "url": "static/assets/zhiwei-menu-presets-20261023-v1/small-talk.mp4" } ]; const panels=[panel,chatPanel].filter(Boolean),statuses=panels.map(p=>p.querySelector('.preset-status')); const buttons=new Map(),defaultStatus='点一个提示,听知微说说'; const testMode=new URLSearchParams(location.search).get('avatar-test')==='seedance25'; function say(text){for(const status of statuses)status.textContent=text} for(const target of panels)for(const preset of presets){ const button=document.createElement('button');button.type='button';button.className='preset-button'; button.dataset.preset=preset.id;button.setAttribute('aria-pressed','false'); button.setAttribute('aria-label',preset.label+',播放预设短片'); const icon=document.createElement('span');icon.className='preset-icon';icon.setAttribute('aria-hidden','true');icon.textContent='✦'; const text=document.createElement('span');text.textContent=preset.label; button.append(icon,text); button.addEventListener('click',()=>{ if(button.closest('[hidden],[inert]'))return; if(!window.NewsBroadcast?.playPreset?.(preset))say('短片暂时无法播放,可以重试或直接输入问题。'); }); target.querySelector('.preset-actions').append(button); if(!buttons.has(preset.id))buttons.set(preset.id,[]); buttons.get(preset.id).push(button); } function sync(){ const chatMode=stage.classList.contains('chat-active'); const menuVisible=!testMode&&!chatMode&&!stage.classList.contains('panels-hidden'); panel.hidden=!menuVisible;panel.inert=!menuVisible;panel.setAttribute('aria-hidden',String(!menuVisible)); // The chat parent owns its mode animation and focus; keep this block's height stable. if(chatPanel){chatPanel.hidden=testMode;chatPanel.inert=testMode;chatPanel.setAttribute('aria-hidden',String(testMode))} if(!menuVisible&&(!chatMode||testMode))window.NewsBroadcast?.stopPreset?.(); } window.addEventListener('zhiwei-preset-playback',event=>{ const {id,phase}=event.detail||{},preset=presets.find(p=>p.id===id); for(const [key,copies] of buttons)for(const button of copies){ const active=key===id&&['loading','playing','paused'].includes(phase); button.classList.toggle('active',active);button.setAttribute('aria-pressed',String(active)); button.setAttribute('aria-busy',String(active&&phase==='loading')); } if(!preset){say(defaultStatus);return} say(phase==='loading'?'正在准备:'+preset.title+'…': phase==='playing'?'知微正在说:'+preset.title: phase==='paused'?'已暂停,可用播放按钮继续': phase==='ended'?'说说你想了解的产品、服务或项目需求。': phase==='blocked'?'浏览器暂未播放声音,请点击「播放」重试。': phase==='error'?'短片暂时无法播放,可以重试或直接输入问题。':defaultStatus); }); new MutationObserver(sync).observe(stage,{attributes:true,attributeFilter:['class']}); say(defaultStatus);sync(); })();