|
@@ -837,7 +837,8 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
}
|
|
}
|
|
// 是否是变速的曲子
|
|
// 是否是变速的曲子
|
|
const hasVaryingSpeed = _notes.some((item: any) => item.measuresTempoInBPM !== _notes[0].measuresTempoInBPM)
|
|
const hasVaryingSpeed = _notes.some((item: any) => item.measuresTempoInBPM !== _notes[0].measuresTempoInBPM)
|
|
- console.log('变速曲子',hasVaryingSpeed)
|
|
|
|
|
|
+ // console.log('变速曲子',hasVaryingSpeed, _notes)
|
|
|
|
+ let noteIds: any = [];
|
|
// let voicesBBox: any = null;
|
|
// let voicesBBox: any = null;
|
|
for (let { note, iterator, currentTime, isDouble, isMutileSubject } of _notes) {
|
|
for (let { note, iterator, currentTime, isDouble, isMutileSubject } of _notes) {
|
|
if (note) {
|
|
if (note) {
|
|
@@ -1077,7 +1078,16 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
// console.log(note.tie)
|
|
// console.log(note.tie)
|
|
// console.log('👀看看endtime', duration, relaEndtime, fixtime, i)
|
|
// console.log('👀看看endtime', duration, relaEndtime, fixtime, i)
|
|
// console.log('频率',note?.pitch?.frequency,i)
|
|
// console.log('频率',note?.pitch?.frequency,i)
|
|
-
|
|
|
|
|
|
+ /**
|
|
|
|
+ * evxml的曲子,如果曲谱xml中带有times信息,则音符时值优先取times中的值
|
|
|
|
+ */
|
|
|
|
+ let evNoteStartTime = 0, evNoteEndTime = 0;
|
|
|
|
+ if (state.isEvxml && note?.noteTimeInfo?.length) {
|
|
|
|
+ const idx = noteIds.filter((item: any) => item === svgElement?.attrs.id)?.length || 0
|
|
|
|
+ evNoteStartTime = note?.noteTimeInfo[idx]?.begin
|
|
|
|
+ evNoteEndTime = note?.noteTimeInfo[idx]?.end
|
|
|
|
+ }
|
|
|
|
+ svgElement?.attrs.id && noteIds.push(svgElement?.attrs.id)
|
|
const nodeDetail = {
|
|
const nodeDetail = {
|
|
isStaccato: note.voiceEntry.isStaccato(),
|
|
isStaccato: note.voiceEntry.isStaccato(),
|
|
isRestFlag: note.isRestFlag,
|
|
isRestFlag: note.isRestFlag,
|
|
@@ -1105,8 +1115,8 @@ export const formateTimes = (osmd: OpenSheetMusicDisplay) => {
|
|
note: note.halfTone + 12, // see issue #224
|
|
note: note.halfTone + 12, // see issue #224
|
|
fixtime, // 弱起补充的时间
|
|
fixtime, // 弱起补充的时间
|
|
relativeTime: retain(relativeTime),
|
|
relativeTime: retain(relativeTime),
|
|
- time: retain(relativeTime + fixtime), // 开始播放的时间
|
|
|
|
- endtime: retain(relaEndtime + fixtime), // 播放完成的时间
|
|
|
|
|
|
+ time: state.isEvxml && evNoteStartTime ? retain(evNoteStartTime) : retain(relativeTime + fixtime), // 开始播放的时间
|
|
|
|
+ endtime: state.isEvxml && evNoteEndTime ? retain(evNoteEndTime) : retain(relaEndtime + fixtime), // 播放完成的时间
|
|
relaEndtime: retain(relaEndtime),
|
|
relaEndtime: retain(relaEndtime),
|
|
realValue,
|
|
realValue,
|
|
halfTone: note.halfTone,
|
|
halfTone: note.halfTone,
|