소스 검색

节拍器 重复时长 优化

黄琪勇 8 달 전
부모
커밋
8a7069a5aa
3개의 변경된 파일8개의 추가작업 그리고 4개의 파일을 삭제
  1. 1 1
      osmd-extended
  2. 4 1
      src/page-instrument/view-detail/index.tsx
  3. 3 2
      src/view/tick/index.tsx

+ 1 - 1
osmd-extended

@@ -1 +1 @@
-Subproject commit 03fa7c2e5b7ad0445360e69636a441ec4f8ea97a
+Subproject commit 8a653186333a6f49d85b61d348e9009ba2803a07

+ 4 - 1
src/page-instrument/view-detail/index.tsx

@@ -246,7 +246,9 @@ export default defineComponent({
       try {
         metronomeData.metro = new Metronome();
         metronomeData.metro.init(state.times);
-      } catch (error) {}
+      } catch (error) {
+        console.log(error, "err")
+      }
 
       // 需要向外面(iframe)派发计时器数据的时候触发
       if (query.isbeatTimes) {
@@ -326,6 +328,7 @@ export default defineComponent({
       try{
         handleRendered(osmd)
       }catch(err:any){
+        console.log(err, "err")
         // 需要向外面(iframe)派发计时器数据的时候触发
         if(query.isbeatTimes){
           console.log("webApi_beatTimes",err)

+ 3 - 2
src/view/tick/index.tsx

@@ -97,10 +97,11 @@ const createAudio = (src: string): Promise<HTMLAudioElement | null> => {
 /** 设置节拍器
  */
 export const handleInitTick = () => {
-	const beatLen = metronomeData.firstBeatTypeArr.length
-	tickData.beatLengthInMilliseconds = metronomeData.firstBeatTypeArr.map(item=>{
+	const beatLen = metronomeData.firstBeatTypeArr.length * (state.repeatedBeats ? 2 : 1)
+	const beatLengthInMilliseconds = metronomeData.firstBeatTypeArr.map(item=>{
 		return Math.abs(item)*state.times[0].measureLength
 	})
+	tickData.beatLengthInMilliseconds = [...beatLengthInMilliseconds,...(state.repeatedBeats ? beatLengthInMilliseconds : [])]
 	tickData.len = beatLen;
 	// // 节拍器的个数除以2 直到小于等于4为止 
 	// while (beat > 4 && beat % 2 === 0) {