|
@@ -1392,7 +1392,7 @@ const getMusicInfo = async (res: any) => {
|
|
|
let partIndexs = query["part-index"] ? query["part-index"].split(",") : ["-1"] // -1为partIndex没有值的时候
|
|
|
partIndexs = partIndexs.map((indexStr:string) => {
|
|
|
return parseInt(indexStr)
|
|
|
- })
|
|
|
+ }).sort();
|
|
|
let partIndex = partIndexs[0]
|
|
|
// 当partIndexs 大于1个的时候,代表用户自己选择了多个声部,用总谱渲染的逻辑
|
|
|
if(partIndexs.length > 1){
|
|
@@ -1413,6 +1413,12 @@ const getMusicInfo = async (res: any) => {
|
|
|
xmlString = xmlAddPartName(xmlString);
|
|
|
downloadXmlStr.value = xmlString //给musice-score 赋值xmlString 以免加载2次
|
|
|
const tracks = xmlToTracks(xmlString) //获取声轨列表
|
|
|
+ // 如果是多个分轨合并显示的,需要记录下所选分轨的第一个分轨的名字,渲染计算音符位置的时候需要根据第一个分轨找到对应音符的位置
|
|
|
+ if (state.combinePartIndexs.length) {
|
|
|
+ (window as any).DYFirstTrackName = tracks[state.combinePartIndexs[0]] || '';
|
|
|
+ } else {
|
|
|
+ (window as any).DYFirstTrackName = '';
|
|
|
+ }
|
|
|
// 设置音源 track 为当前的声轨 index为当前的
|
|
|
const { track, index, musicalInstrumentId } = state.isSimplePage ? { track:tracks[0], index:0, musicalInstrumentId: '' } : initMusicSource(res.data, tracks, partIndex, workRecordInstrumentId)
|
|
|
// 这里返回的track可能和实际的对不上,所以重新筛选一下
|