|
@@ -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可能和实际的对不上,所以重新筛选一下
|
|
@@ -1518,6 +1524,13 @@ function initMusicSource(data: any, tracks: string[], partIndex: number, workRec
|
|
|
}
|
|
|
state.partListNames = tracks
|
|
|
}
|
|
|
+ /* 目前 管乐迷没有演唱模式 所以先排除掉演唱模式的数据 */
|
|
|
+ if(fanSongObj?.audioFileUrl || banSongObj?.audioFileUrl || fanSongObj?.solmizationFileUrl || fanSongObj?.femaleSolmizationFileUrl){
|
|
|
+ fanSongObj?.audioFileUrl && (fanSongObj.audioFileUrl = null)
|
|
|
+ banSongObj?.audioFileUrl && (banSongObj.audioFileUrl = null)
|
|
|
+ fanSongObj?.solmizationFileUrl && (fanSongObj.solmizationFileUrl = null)
|
|
|
+ fanSongObj?.femaleSolmizationFileUrl && (fanSongObj.femaleSolmizationFileUrl = null)
|
|
|
+ }
|
|
|
// 当没有任何曲目的时候报错
|
|
|
if (!musicObj?.audioFileUrl && !accompanyObj?.audioFileUrl && !fanSongObj?.audioFileUrl && !banSongObj?.audioFileUrl && !fanSongObj?.solmizationFileUrl && !fanSongObj?.femaleSolmizationFileUrl) {
|
|
|
state.noMusicSource = true // 没有音源文件
|