index-7bbeb264.js 2.8 KB

1
  1. import{d as _,F as x,W as M,M as h,V as e,c1 as N,aD as b,j as r,aT as f,c2 as T,c3 as w,aq as L,al as P,a$ as k,B,c4 as C,c5 as D,b2 as X,c6 as q,c7 as A,c8 as E,c9 as R}from"./index-557da405.js";const F="_skeleton_bwm6i_4",I="_detail_bwm6i_15",J="_mask_bwm6i_23",O="_container_bwm6i_29",d={skeleton:F,detail:I,mask:J,container:O},W=_({name:"simple-detail",setup(){const m=x(),s=M({isLoading:!0,currentTime:0,totalTime:0}),u=i=>{var a,o,p,g;let t={};try{t=typeof(i==null?void 0:i.data)=="string"?JSON.parse(i.data):i.data}catch(n){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 n=(a=t==null?void 0:t.content)==null?void 0:a.currentTime;console.log("暂停播放",n),e.playState="paused",n===0&&setTimeout(()=>{s.currentTime=0,e.activeNoteIndex=0,e.activeMeasureIndex=e.times[0].MeasureNumberXML,c(!0)},200)}if((t==null?void 0:t.api)==="api_updateProgress"&&(console.log("拖动的进度",e.playState),e.playState==="paused"&&(s.currentTime=(p=(o=t==null?void 0:t.content)==null?void 0:o.currentTime)!=null?p:s.currentTime,e.activeNoteIndex=0,e.activeMeasureIndex=e.times[0].MeasureNumberXML,c(!0))),(t==null?void 0:t.api)==="api_playProgress"){const n=(g=t==null?void 0:t.content)==null?void 0:g.currentTime;if(n){if(n<s.currentTime){e.activeNoteIndex=0;let S=T(n)||e.times[0];S.i===e.activeNoteIndex&&(e.activeMeasureIndex=S.MeasureNumberXML);const y=e.times[0].fixtime;n<=y&&w(!0)}s.currentTime=n}}};h(async()=>{const i=m.id||"";e.isSimplePage=!0,e.partIndex=m["part-index"]?Number(m["part-index"]):0,await N(i,"open"),s.isLoading=!1,e.isSingleLine=!0,window.addEventListener("message",u)}),b(()=>{e.isSimplePage=!1,window.removeEventListener("message",u)});const v=async i=>{var o;const t=(o=document.getElementById("scrollContainer"))==null?void 0:o.getBoundingClientRect().height;e.osmd=i,e.originSpeed===0&&(e.originSpeed=e.speed=i.bpm||i.Sheet.userStartTempoInBPM||100);const a=(L.get("speeds")||{})[e.examSongId]||e.speed||i.bpm||i.Sheet.userStartTempoInBPM;a&&P(a),e.times=k(i),console.log("🚀 ~ state.times:",e.times,e),B(()=>{e.activeMeasureIndex=e.times[0].MeasureNumberXML,R()}),C(e.times),D(),X(),console.log("渲染完成",t),window.parent.postMessage({api:"api_musicPage",height:t},"*"),q({height:t})},c=i=>{const t=s.currentTime;let a=T(t)||e.times[0];a&&A(a,i),e.activeNoteIndex=(a==null?void 0:a.i)||0,e.isSingleLine&&E(t,!0)},l=()=>{if(e.playState!=="play"){console.log("暂停播放");return}let i=Date.now();requestAnimationFrame(()=>{Date.now()-i<16.7?(c(),l()):setTimeout(()=>{c(),l()},16.7)})};return()=>r("div",{class:d.detail},[r("div",{class:d.mask},null),r("div",{id:"scrollContainer",class:[d.container,"hideCursor"]},[!s.isLoading&&r(f,{onRendered:v,musicColor:"#000000"},null)])])}});export{W as default};