|
@@ -322,13 +322,12 @@ export default defineComponent({
|
|
|
if (popup.selectMearesShow && data.selectMeasures.startNote && data.selectMeasures.endNote) {
|
|
|
const end =
|
|
|
totalBeats *
|
|
|
- (data.selectMeasures.endNote.milliseconds /
|
|
|
- (abcData.visualObj.getTotalTime() * 1000)) - 0.1;
|
|
|
+ (data.selectMeasures.endNote.milliseconds / (abcData.visualObj.getTotalTime() * 1000)) -
|
|
|
+ 0.1;
|
|
|
// console.log(beatNumber, start, end, progress);
|
|
|
if (beatNumber >= end) {
|
|
|
const progress =
|
|
|
- data.selectMeasures.startNote.milliseconds /
|
|
|
- (abcData.visualObj.getTotalTime() * 1000);
|
|
|
+ data.selectMeasures.startNote.milliseconds / (abcData.visualObj.getTotalTime() * 1000);
|
|
|
(abcData.synthControl as any).seek(progress);
|
|
|
return;
|
|
|
}
|
|
@@ -420,14 +419,12 @@ export default defineComponent({
|
|
|
if (!(abcData.synthControl as any).isLoaded) {
|
|
|
(abcData.synthControl as any).runWhenReady(() => {
|
|
|
const progress =
|
|
|
- data.selectMeasures.startNote.milliseconds /
|
|
|
- (abcData.visualObj.getTotalTime() * 1000);
|
|
|
+ data.selectMeasures.startNote.milliseconds / (abcData.visualObj.getTotalTime() * 1000);
|
|
|
(abcData.synthControl as any).seek(progress);
|
|
|
});
|
|
|
} else {
|
|
|
const progress =
|
|
|
- data.selectMeasures.startNote.milliseconds /
|
|
|
- (abcData.visualObj.getTotalTime() * 1000);
|
|
|
+ data.selectMeasures.startNote.milliseconds / (abcData.visualObj.getTotalTime() * 1000);
|
|
|
(abcData.synthControl as any).seek(progress);
|
|
|
}
|
|
|
}
|
|
@@ -448,6 +445,35 @@ export default defineComponent({
|
|
|
} else {
|
|
|
abcData.synthControl.restart();
|
|
|
nextTick(() => {
|
|
|
+ if (popup.selectMearesShow) {
|
|
|
+ if (
|
|
|
+ data.selectMeasures.start > data.selectMeasures.end ||
|
|
|
+ !data.selectMeasures.startNote ||
|
|
|
+ !data.selectMeasures.endNote
|
|
|
+ ) {
|
|
|
+ data.selectMeasures.start = 0;
|
|
|
+ data.selectMeasures.end = 0;
|
|
|
+ data.selectMeasures.startNote = null;
|
|
|
+ data.selectMeasures.endNote = null;
|
|
|
+ message.warning("请输入正确的小节范围");
|
|
|
+ data.selectMeasures.state = false;
|
|
|
+ nextTick(() => {
|
|
|
+ data.selectMeasures.state = true;
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!(abcData.synthControl as any).isLoaded) {
|
|
|
+ (abcData.synthControl as any).runWhenReady(() => {
|
|
|
+ const progress =
|
|
|
+ data.selectMeasures.startNote.milliseconds / (abcData.visualObj.getTotalTime() * 1000);
|
|
|
+ (abcData.synthControl as any).seek(progress);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ const progress =
|
|
|
+ data.selectMeasures.startNote.milliseconds / (abcData.visualObj.getTotalTime() * 1000);
|
|
|
+ (abcData.synthControl as any).seek(progress);
|
|
|
+ }
|
|
|
+ }
|
|
|
if (!data.playState) {
|
|
|
abcData.synthControl.play();
|
|
|
}
|
|
@@ -1562,6 +1588,9 @@ export default defineComponent({
|
|
|
/** 设置选段小节 */
|
|
|
const handleSetSelectMeares = (index: number | null, type: "start" | "end") => {
|
|
|
console.log("🚀 ~ index:", index);
|
|
|
+ if (data.playState) {
|
|
|
+ togglePlay("pause");
|
|
|
+ }
|
|
|
if (type === "start") {
|
|
|
let note = index ? useIndexGetNote(`${index - 1}.0`) : null;
|
|
|
note = data.times.find((_note: any) => _note.startChar === note.startChar);
|
|
@@ -1577,10 +1606,8 @@ export default defineComponent({
|
|
|
data.selectMeasures.endNote = null;
|
|
|
}
|
|
|
} else {
|
|
|
- let note = index
|
|
|
- ? useIndexGetNote(`${index}.0`)
|
|
|
- : null;
|
|
|
- note = data.times.find((_note: any) => _note.startChar === note.startChar);
|
|
|
+ let note = index ? useIndexGetNote(`${index}.0`) : null;
|
|
|
+ note = data.times.find((_note: any) => _note.startChar === note.startChar);
|
|
|
// console.log("🚀 ~ note:", note);
|
|
|
data.selectMeasures.end = index ? index - 1 : 0;
|
|
|
data.selectMeasures.endNote = note;
|