|
|
@@ -174,8 +174,10 @@ export async function handlerModeChange(oldPlayType: "play" | "sing", oldPlaySou
|
|
|
function modeChangeHandleTimes(oldPlayType: "play" | "sing", oldPlaySource: IPlayState, nowPlayType?:"play" | "sing", nowPlaySource?: IPlayState) {
|
|
|
const playType = nowPlayType || state.playType;
|
|
|
const playSource = nowPlaySource || state.playSource;
|
|
|
- const { notBeatFixtime, xmlMp3BeatFixTime, difftime } = state.times[0];
|
|
|
+ const { notBeatFixtime, xmlMp3BeatFixTime, difftime, fixtime } = state.times[0];
|
|
|
const { isOpenMetronome, isSingOpenMetronome } = state;
|
|
|
+ // 管乐迷的曲子,有唱名时,唱名文件可能包含了mp3节拍器的时长
|
|
|
+ const specailFixTime = state.times[0]?.fixtime || difftime;
|
|
|
// 因为演奏加了唱名,所以往跟练模式切换和评测模式切换的时候,刷新谱面的时候需要更新时值,这时候调用handleRessetState 会回到练习模式,这里是
|
|
|
if(state.modeType === "follow" || state.modeType === "evaluating") {
|
|
|
return false
|
|
|
@@ -242,11 +244,11 @@ function modeChangeHandleTimes(oldPlayType: "play" | "sing", oldPlaySource: IPla
|
|
|
// 当切为唱名时候
|
|
|
if(playSource==="mingSong"){
|
|
|
// 唱名文件也要加上弱起时间 他们制作曲子加了弱起时间 注意这修改了之后给总控平台的时值也需要改
|
|
|
- state.fixtime = difftime;
|
|
|
+ state.fixtime = specailFixTime;
|
|
|
state.times.map((item) => {
|
|
|
- item.time = item.xmlNoteTime + difftime;
|
|
|
- item.endtime = item.xmlNoteEndTime + difftime;
|
|
|
- item.fixtime = difftime;
|
|
|
+ item.time = item.xmlNoteTime + specailFixTime;
|
|
|
+ item.endtime = item.xmlNoteEndTime + specailFixTime;
|
|
|
+ item.fixtime = specailFixTime;
|
|
|
});
|
|
|
return true;
|
|
|
}
|