|
@@ -187,7 +187,7 @@ export default defineComponent({
|
|
|
const startIndex = state.times.findIndex((n: any) => n.noteId == state.section[0].noteId);
|
|
|
let endIndex = state.times.findIndex((n: any) => n.noteId == state.section[1].noteId);
|
|
|
endIndex = endIndex < state.section[1].i ? state.section[1].i : endIndex;
|
|
|
- if (startIndex >= 1) {
|
|
|
+ if (startIndex > 1) {
|
|
|
// firstNoteTime应该取预备小节的第一个音符的开始播放的时间
|
|
|
const idx = startIndex - 1 - state.times[startIndex - 1].si;
|
|
|
preTime = state.times[idx] ? state.times[idx].time * 1000 : 0;
|
|
@@ -205,14 +205,18 @@ export default defineComponent({
|
|
|
// 阶段评测beatLength需要加上预备小节的持续时长
|
|
|
actualBeatLength = preTimes.length ? actualBeatLength + preTimes[preTimes.length - 1].relaMeasureLength * 1000 : actualBeatLength;
|
|
|
// 如果是弱起,并且预备小节是第一节
|
|
|
- if (state.section.length && state.sectionFirst && state.sectionFirst.measureListIndex == 0) {
|
|
|
+ if (state.section.length && state.sectionFirst && state.sectionFirst.measureListIndex == 0 && !state.isEvxml) {
|
|
|
actualBeatLength = actualBeatLength < Math.round((state.times[0].fixtime * 1000) / 1) ? Math.round((state.times[0].fixtime * 1000) / 1) : actualBeatLength;
|
|
|
}
|
|
|
|
|
|
- let firstNoteTime = unitTestIdx >= 1 ? preTime : 0;
|
|
|
+ let firstNoteTime = unitTestIdx > 1 ? preTime : 0;
|
|
|
let measureIndex = -1;
|
|
|
let recordMeasure = -1;
|
|
|
|
|
|
+ // 如果有mp3节拍器,并且预备小节是第一节,并且从0开始播放,actualBeatLength需要加上mp3节拍器时间
|
|
|
+ if (state.section.length === 2 && firstNoteTime === 0 && state.section[0]?.MeasureNumberXML === state.firstMeasureNumber + 1 && state.times[0].fixtime) {
|
|
|
+ actualBeatLength = actualBeatLength + Math.round((state.times[0].fixtime * 1000) / 1)
|
|
|
+ }
|
|
|
for (let index = 0; index < selectTimes.length; index++) {
|
|
|
const item = selectTimes[index];
|
|
|
const note = getNoteByMeasuresSlursStart(item);
|