1 |
- import{d as M,g as y,r as h,o as x,s as e,J as N,x as w,b as c,M as b,R as _,S as f,U as k,V as L,W as B,X as P,O as R,n as C,Y as D,Z as X,Q as A,_ as E,$ as J,a0 as O}from"./instrument-98ef3583.js";const V="_skeleton_oe0r3_4",q="_detail_oe0r3_15",Q="_mask_oe0r3_23",U="_container_oe0r3_29",F="_whiteBg_oe0r3_48",d={skeleton:V,detail:q,mask:Q,container:U,whiteBg:F},H=M({name:"simple-detail",setup(){const m=y(),n=h({isLoading:!0,currentTime:0,totalTime:0,backgroundRendMode:""}),u=a=>{var i,o,g,p;let t={};try{t=typeof(a==null?void 0:a.data)=="string"?JSON.parse(a.data):a.data}catch(s){console.error("parse_error: Invalid JSON data received")}if((t==null?void 0:t.api)==="api_play"&&(console.log("h5开始播放"),e.playState="play",l()),(t==null?void 0:t.api)==="api_paused"){const s=(i=t==null?void 0:t.content)==null?void 0:i.currentTime;console.log("暂停播放",s),e.playState="paused",s===0&&setTimeout(()=>{n.currentTime=0,e.activeNoteIndex=0,e.activeMeasureIndex=e.times[0].MeasureNumberXML,r(!0)},200)}if((t==null?void 0:t.api)==="api_updateProgress"&&(console.log("拖动的进度",e.playState),e.playState==="paused"&&(n.currentTime=(g=(o=t==null?void 0:t.content)==null?void 0:o.currentTime)!=null?g:n.currentTime,e.activeNoteIndex=0,e.activeMeasureIndex=e.times[0].MeasureNumberXML,r(!0))),(t==null?void 0:t.api)==="api_playProgress"){const s=(p=t==null?void 0:t.content)==null?void 0:p.currentTime;if(s){if(s<n.currentTime){e.activeNoteIndex=0;let S=_(s)||e.times[0];S.i===e.activeNoteIndex&&(e.activeMeasureIndex=S.MeasureNumberXML);const T=e.times[0].fixtime;s<=T&&f(!0)}n.currentTime=s}}};x(async()=>{const a=m.id||"";n.backgroundRendMode=m.backgroundRendMode,e.isSimplePage=!0,await N(a,"open"),n.isLoading=!1,e.isSingleLine=!0,window.addEventListener("message",u)}),w(()=>{e.isSimplePage=!1,window.removeEventListener("message",u)});const v=async a=>{var o;const t=(o=document.getElementById("scrollContainer"))==null?void 0:o.getBoundingClientRect().height;e.osmd=a,e.originSpeed===0&&(e.originSpeed=e.speed=a.bpm||a.Sheet.userStartTempoInBPM||100);const i=(k.get("speeds")||{})[e.examSongId]||e.speed||a.bpm||a.Sheet.userStartTempoInBPM;i&&L(i),B(),P(),e.times=R(a),console.log("🚀 ~ state.times:",e.times,e),C(()=>{e.activeMeasureIndex=e.times[0].MeasureNumberXML}),D(e.times),X(),A(),console.log("渲染完成",t),window.parent.postMessage({api:"api_musicPage",height:t},"*"),E({height:t})},r=a=>{const t=n.currentTime;let i=_(t)||e.times[0];i&&J(i,a),e.activeNoteIndex=(i==null?void 0:i.i)||0,e.isSingleLine&&O(t)},l=()=>{if(e.playState!=="play"){console.log("暂停播放");return}let a=Date.now();requestAnimationFrame(()=>{Date.now()-a<16.7?(r(),l()):setTimeout(()=>{r(),l()},16.7)})};return()=>c("div",{class:[d.detail,n.backgroundRendMode==="video"&&d.whiteBg]},[c("div",{class:d.mask},null),c("div",{id:"scrollContainer",class:[d.container]},[!n.isLoading&&c(b,{onRendered:v,musicColor:"#000000"},null)])])}});export{H as default};
|