|
@@ -1371,6 +1371,7 @@ const getMusicInfo = async (res: any) => {
|
|
|
const tracks = xmlToTracks(xmlString) //获取声轨列表
|
|
|
// 设置音源 track 为当前的声轨 index为当前的
|
|
|
const { track, index, musicalInstrumentId } = state.isSimplePage ? { track:tracks[0], index:0, musicalInstrumentId: '' } : initMusicSource(res.data, tracks, partIndex, workRecordInstrumentId)
|
|
|
+ // 这里返回的track可能和实际的对不上,所以重新筛选一下
|
|
|
const realTrack = musicalInstrumentId && res.data?.musicalInstruments?.length ? res.data?.musicalInstruments.find((item: any) => item?.id == musicalInstrumentId)?.code?.split(',')?.[0] : '';
|
|
|
const musicInfo = {
|
|
|
...res.data,
|
|
@@ -1408,23 +1409,11 @@ function initMusicSource(data: any, tracks: string[], partIndex: number, workRec
|
|
|
musicObj = musicSheetSoundList.find((item: any) => {
|
|
|
return isAllSubject ? item.audioPlayType === "PLAY" : (item.audioPlayType === "PLAY" && item.musicalInstrumentId == instrumentId)
|
|
|
})
|
|
|
- // 因为可能根据学生的乐器id也找不到曲目所以尝试取第一个
|
|
|
- if(!musicObj){
|
|
|
+ // 当没有找到原音的时候,并且instrumentId没有值的时候,取默认第一个乐器
|
|
|
+ if(!musicObj && !instrumentId){
|
|
|
musicObj = musicSheetSoundList.find((item: any) => {
|
|
|
return item.audioPlayType === "PLAY"
|
|
|
})
|
|
|
- // 取第一个时候,不播放演奏文件切换为演唱模式 总控平台排除这个逻辑
|
|
|
- if(!query.isCbs){
|
|
|
- state.playType = "sing"
|
|
|
- if(musicObj) {
|
|
|
- musicObj.audioFileUrl = null
|
|
|
- musicObj.audioBeatMixUrl = null
|
|
|
- }
|
|
|
- if(accompanyObj) {
|
|
|
- accompanyObj.audioFileUrl = null
|
|
|
- accompanyObj.audioBeatMixUrl = null
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
fanSongObj = musicSheetSoundList.find((item: any) => {
|
|
|
return item.audioPlayType === "SING"
|
|
@@ -1599,12 +1588,12 @@ const setState = (data: any, index: number) => {
|
|
|
/**
|
|
|
* 单曲,指法根据用户当前的乐器来显示,如果没有则取musicSheetSoundList第一个track
|
|
|
*/
|
|
|
- const currentInstrumentId = query.instrumentId || storeData.user?.instrumentId;
|
|
|
- let musicalCode = !currentInstrumentId ? data.musicSheetSoundList?.find((item:any)=>{ return item.audioPlayType === "PLAY" })?.track || '' : data.musicSheetSoundList?.find((item: any) => item?.musicalInstrumentId == currentInstrumentId && item.audioPlayType === "PLAY")?.track || '';
|
|
|
- const pitchSubject = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === subjectCode.toLocaleLowerCase())
|
|
|
- const pitchMusical = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === musicalCode.toLocaleLowerCase())
|
|
|
- state.subjectCodeId = pitchSubject ? pitchSubject.id : 0
|
|
|
- state.musicalCodeId = pitchMusical ? pitchMusical.id : 0
|
|
|
+ // const currentInstrumentId = query.instrumentId || storeData.user?.instrumentId;
|
|
|
+ // let musicalCode = !currentInstrumentId ? data.musicSheetSoundList?.find((item:any)=>{ return item.audioPlayType === "PLAY" })?.track || '' : data.musicSheetSoundList?.find((item: any) => item?.musicalInstrumentId == currentInstrumentId && item.audioPlayType === "PLAY")?.track || '';
|
|
|
+ // const pitchSubject = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === subjectCode.toLocaleLowerCase())
|
|
|
+ // const pitchMusical = musicalInstrumentCodeInfo.find((n) => n.code.toLocaleLowerCase() === musicalCode.toLocaleLowerCase())
|
|
|
+ // state.subjectCodeId = pitchSubject ? pitchSubject.id : 0
|
|
|
+ // state.musicalCodeId = pitchMusical ? pitchMusical.id : 0
|
|
|
state.categoriesId = data.musicCategoryId;
|
|
|
state.categoriesName = data.musicTagNames;
|
|
|
// state.enableEvaluation = data.isEvaluated ? true : false;
|
|
@@ -1708,13 +1697,13 @@ const setState = (data: any, index: number) => {
|
|
|
* 能否转谱:先取isConvertibleScore字段,如果isConvertibleScore为true,则取musicalInstruments字段匹配的当前分轨的transferFlag,都为true则可以转谱
|
|
|
*
|
|
|
*/
|
|
|
- let pitchTrack = null
|
|
|
- if (state.isConcert) {
|
|
|
- musicalCode = musicalInstrumentCodeInfo.find((item: any) => item.id === state.musicalCodeId)?.code
|
|
|
- pitchTrack = data.musicalInstruments?.find((item: any) => item.code?.split(',')[0] === musicalCode)
|
|
|
- } else {
|
|
|
- pitchTrack = data.musicalInstruments?.find((item: any) => item.code?.split(',')[0] === musicalCode)
|
|
|
- }
|
|
|
+ // let pitchTrack = null
|
|
|
+ // if (state.isConcert) {
|
|
|
+ // musicalCode = musicalInstrumentCodeInfo.find((item: any) => item.id === state.musicalCodeId)?.code
|
|
|
+ // pitchTrack = data.musicalInstruments?.find((item: any) => item.code?.split(',')[0] === musicalCode)
|
|
|
+ // } else {
|
|
|
+ // pitchTrack = data.musicalInstruments?.find((item: any) => item.code?.split(',')[0] === musicalCode)
|
|
|
+ // }
|
|
|
let musicalRenderType = ''
|
|
|
// if (pitchTrack?.defaultScore) {
|
|
|
// musicalRenderType = pitchTrack?.defaultScore === 'STAVE' ? 'staff' : pitchTrack?.defaultScore === 'JIAN' ? 'fixedTone' : pitchTrack?.defaultScore === 'FIRST' ? 'firstTone' : ''
|