Browse Source

Merge branch 'iteration-oss-up' into online

lex 1 year ago
parent
commit
363eb68e89
2 changed files with 19 additions and 17 deletions
  1. 6 7
      src/components/tick/player.ts
  2. 13 10
      src/vexflow-test/index.tsx

+ 6 - 7
src/components/tick/player.ts

@@ -1,7 +1,7 @@
 import { tickUrl, tockUrl } from '/src/constant/audios'
 import eventemitter3 from 'eventemitter3'
 import state from '/src/pages/detail/state'
-import {Howl} from 'howler'
+import { Howl } from 'howler'
 import { browser } from '/src/helpers/utils'
 import { nextTick } from '@vue/runtime-core'
 
@@ -31,14 +31,13 @@ export default class Player {
 
   isNeedStop = false
 
-  constructor(dots?: number, speed?: number) {
-  }
+  constructor(dots?: number, speed?: number) {}
 
   getTickByDots = (dots: number, starttime: number) => {
     return Array.from(Array(dots)).map((item, index) => {
       const data = {
         time: `0:${(starttime + index) * 1.4}`,
-        note: (index === 0 ? "C5" : "c4"),
+        note: index === 0 ? 'C5' : 'c4',
         velocity: 1,
         index: index + starttime,
       }
@@ -76,7 +75,7 @@ export default class Player {
           this.part?.clear()
         }, 450 / speed)
       }
-      activeIndex ++
+      activeIndex++
     }
 
     const timeTick = () => {
@@ -87,7 +86,7 @@ export default class Player {
           } catch (error) {
             console.log('timeTickError', error)
           }
-        }, 700 / speed)
+        }, 666.6 / speed)
       }
     }
     nuxtTick()
@@ -105,7 +104,7 @@ export default class Player {
     this.startTick(times, speed, dots, repeat)
   }
 
-  async start (dots: number, speed: number, repeat = 1) {
+  async start(dots: number, speed: number, repeat = 1) {
     this.isNeedStop = false
     this.setAudioMode(dots, speed, repeat)
   }

+ 13 - 10
src/vexflow-test/index.tsx

@@ -20,7 +20,7 @@ export default defineComponent({
       // xml: '/音符-符杆.xml'
       // xml: '/1.小字一组567练习 - 副本 (2).xml'
       // xml: '/钢琴-测评.xml'
-      xml: 'https://ks3-cn-beijing.ksyuncs.com/cloud-coach/1661242248370尤克里里-测试-音阶.xml',
+      xml: 'https://oss.dayaedu.com/cloud-coach/1661242248370尤克里里-测试-音阶.xml',
     }
   },
   computed: {
@@ -39,7 +39,7 @@ export default defineComponent({
           type: 0,
           color: 'green',
           alpha: 1,
-          follow: true
+          follow: true,
         },
         // {
         //   type: 0,
@@ -47,7 +47,7 @@ export default defineComponent({
         //   alpha: 1,
         //   follow: true
         // }
-      ]
+      ],
     })
     // ;(window as any).osmd = osmd
     osmd.EngravingRules.StaffLineColor = 'rgba(238,128,196,1)'
@@ -126,7 +126,7 @@ export default defineComponent({
       // console.log({...iterator})
       while (!iterator.EndReached) {
         const voices = iterator.CurrentVoiceEntries?.[0] ? [iterator.CurrentVoiceEntries?.[0]] : []
-        const voices2 : any = iterator.CurrentVoiceEntries?.[1]
+        const voices2: any = iterator.CurrentVoiceEntries?.[1]
         for (var i = 0; i < voices.length; i++) {
           const v = voices[i]
           const notes = v.Notes
@@ -137,8 +137,11 @@ export default defineComponent({
               allNotes.push({
                 note: note.halfTone + 12, // see issue #224
                 time: iterator.currentTimeStamp.RealValue * 4,
-                halfTone1: notes.map(n => n.halfTone + 12).filter(Boolean),
-                halfTone2: voices2 && Array.isArray(voices2.notes) ? voices2.notes.map((n: any) => n.halfTone + 12).filter(Boolean) : []
+                halfTone1: notes.map((n) => n.halfTone + 12).filter(Boolean),
+                halfTone2:
+                  voices2 && Array.isArray(voices2.notes)
+                    ? voices2.notes.map((n: any) => n.halfTone + 12).filter(Boolean)
+                    : [],
               })
             }
           }
@@ -165,19 +168,19 @@ export default defineComponent({
         osmd.cursor.show()
       }
     },
-    autoPlay(){
+    autoPlay() {
       clearTimeout(timer)
       let time = 0
       timer = setInterval(() => {
         console.log(osmd.cursor.cursorElement.style.display)
-        if (new Date().getTime() - time > 2000){
+        if (new Date().getTime() - time > 2000) {
           osmd.cursor.next()
         }
         if (1) time = new Date().getTime()
-        
+
         console.log(osmd.cursor.cursorElement.style.display)
       }, 1000)
-    }
+    },
   },
   render() {
     return (