index-e33bc7c2.js 2.6 KB

1
  1. import{d as _,g as y,n as h,c as b,m as e,bK as M,ad as x,h as r,at as N,bL as g,bM as f,$ as L,U as P,bN as C,bO as w,aB as k,aE as B,bP as F,bQ as D,aF as R,bR as z,bS as E,bT as A,bU as O}from"./index-f04dd0ce.js";const U="_skeleton_zs6vu_1",X="_detail_zs6vu_12",q="_mask_zs6vu_20",J="_container_zs6vu_26",d={skeleton:U,detail:X,mask:q,container:J},V=_({name:"simple-detail",setup(){const S=y(),s=h({isLoading:!0,currentTime:0,totalTime:0}),m=a=>{var i,o,u;let t={};try{t=typeof(a==null?void 0:a.data)=="string"?JSON.parse(a.data):a.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"&&(console.log("暂停播放"),e.playState="paused"),(t==null?void 0:t.api)==="api_updateProgress"&&(console.log("拖动的进度"),e.playState==="paused"&&(s.currentTime=(o=(i=t==null?void 0:t.content)==null?void 0:i.currentTime)!=null?o:s.currentTime,e.activeNoteIndex=0,e.activeMeasureIndex=e.times[0].MeasureNumberXML,c(!0))),(t==null?void 0:t.api)==="api_playProgress"){const n=(u=t==null?void 0:t.content)==null?void 0:u.currentTime;if(n){if(n<s.currentTime){e.activeNoteIndex=0;let p=g(n)||e.times[0];p.i===e.activeNoteIndex&&(e.activeMeasureIndex=p.MeasureNumberXML);const T=e.times[0].fixtime;n<=T&&f(!0)}s.currentTime=n}}};b(async()=>{const a=S.id||"";e.isSimplePage=!0,await M(a,"open"),s.isLoading=!1,e.isSingleLine=!0,window.addEventListener("message",m)}),x(()=>{e.isSimplePage=!1,window.removeEventListener("message",m)});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=(L.get("speeds")||{})[e.examSongId]||e.speed||a.bpm||a.Sheet.userStartTempoInBPM;i&&P(i),C(),w(),e.times=k(a),console.log("🚀 ~ state.times:",e.times,e),B(()=>{e.activeMeasureIndex=e.times[0].MeasureNumberXML,O()}),F(e.times),D(),R(),console.log("渲染完成",t),window.parent.postMessage({api:"api_musicPage",height:t},"*"),z({height:t})},c=a=>{const t=s.currentTime;let i=g(t)||e.times[0];i&&E(i,a),e.activeNoteIndex=(i==null?void 0:i.i)||0,e.isSingleLine&&A(t)},l=()=>{if(e.playState!=="play"){console.log("暂停播放");return}let a=Date.now();requestAnimationFrame(()=>{Date.now()-a<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(N,{onRendered:v,musicColor:"#FFFFFF"},null)])])}});export{V as default};