|
@@ -1,5 +1,5 @@
|
|
|
import { defineComponent, onMounted, onUnmounted, reactive, nextTick } from "vue";
|
|
|
-import state, { getMusicDetail, handleSetSpeed, addNoteBBox, getNote, gotoNext, fillWordColor } from "/src/state";
|
|
|
+import state, { getMusicDetail, handleSetSpeed, addNoteBBox, getNote, gotoNext, fillWordColor, moveSvgDom } from "/src/state";
|
|
|
import MusicScore from "../../view/music-score";
|
|
|
import styles from "./index.module.less";
|
|
|
import { getQuery } from "/src/utils/queryString";
|
|
@@ -44,18 +44,32 @@ export default defineComponent({
|
|
|
if (resInfo?.api === "api_updateProgress") {
|
|
|
console.log('拖动的进度')
|
|
|
if (state.playState === 'paused') {
|
|
|
- detailData.currentTime = resInfo?.content?.currentTime ? resInfo?.content?.currentTime : detailData.currentTime;
|
|
|
+ detailData.currentTime = resInfo?.content?.currentTime ?? detailData.currentTime;
|
|
|
+ // 坐标和小节都改为初始值
|
|
|
+ state.activeNoteIndex = 0
|
|
|
+ state.activeMeasureIndex = state.times[0].MeasureNumberXML;
|
|
|
handlePlaying(true);
|
|
|
}
|
|
|
}
|
|
|
// 播放进度
|
|
|
if (resInfo?.api === "api_playProgress") {
|
|
|
// console.log('播放进度',resInfo)
|
|
|
- if (resInfo?.content?.currentTime) {
|
|
|
- if (resInfo?.content?.currentTime < detailData.currentTime) {
|
|
|
+ const currentTime = resInfo?.content?.currentTime
|
|
|
+ if (currentTime) {
|
|
|
+ if (currentTime < detailData.currentTime) {
|
|
|
+ // 坐标和小节都改为初始值
|
|
|
state.activeNoteIndex = 0
|
|
|
+ let item = getNote(currentTime) || state.times[0];
|
|
|
+ if(item.i === state.activeNoteIndex){
|
|
|
+ state.activeMeasureIndex = item.MeasureNumberXML;
|
|
|
+ }
|
|
|
+ // 当拖动到MP3节拍器时候 需要手动移动到当前为止
|
|
|
+ const fixtime = state.times[0].fixtime
|
|
|
+ if(currentTime <= fixtime){
|
|
|
+ moveSvgDom(true)
|
|
|
+ }
|
|
|
}
|
|
|
- detailData.currentTime = resInfo?.content?.currentTime
|
|
|
+ detailData.currentTime = currentTime
|
|
|
}
|
|
|
}
|
|
|
};
|
|
@@ -134,7 +148,7 @@ export default defineComponent({
|
|
|
//detailData.currentTime += 0.03
|
|
|
const currentTime = detailData.currentTime;
|
|
|
// console.log('👀~播放进度',currentTime)
|
|
|
- let item = getNote(currentTime);
|
|
|
+ let item = getNote(currentTime) || state.times[0];
|
|
|
if (item) {
|
|
|
gotoNext(item, skipNote);
|
|
|
}
|