|
@@ -24,6 +24,7 @@ import { api_lessonTrainingTrainingStudentDetail } from "/src/page-instrument/ap
|
|
|
import { undoData, moveData } from "/src/view/plugins/move-music-score"
|
|
|
import { HANDLE_WORK_ADD } from "/src/page-instrument/custom-plugins/work-index";
|
|
|
import { speedBeatTo, unitImgs } from "/src/helpers/beatConfig"
|
|
|
+import IndexedDBService from "/src/utils/indexedDB";
|
|
|
|
|
|
const query: any = getQuery();
|
|
|
|
|
@@ -1467,16 +1468,34 @@ export const getMusicDetail = async (id: string, type?: string) => {
|
|
|
};
|
|
|
|
|
|
|
|
|
+// 判断有没有xml缓存,有则直接使用
|
|
|
+const queryMusicXml = async (id: string, xmlUr: string) => {
|
|
|
+ let xmlString = ''
|
|
|
+ const dbService = new IndexedDBService("MyDatabase", "MyStore");
|
|
|
+ console.time('缓存获取xml')
|
|
|
+ const storeXmlData = await dbService.get(id).then((data) => data );
|
|
|
+ if (storeXmlData && storeXmlData.xmlString) {
|
|
|
+ xmlString = storeXmlData && storeXmlData.xmlString
|
|
|
+ console.timeEnd('缓存获取xml')
|
|
|
+ // 使用完后删除数据
|
|
|
+ dbService.delete(id)
|
|
|
+ } else {
|
|
|
+ xmlString = await fetch(xmlUr).then((response) => response.text());
|
|
|
+ }
|
|
|
+ return xmlString;
|
|
|
+}
|
|
|
+
|
|
|
const getMusicInfo = async (res: any) => {
|
|
|
// 是否支持总谱
|
|
|
state.isScoreRender = res.data?.isScoreRender
|
|
|
// 是否默认显示总谱
|
|
|
state.defaultScoreRender = res.data?.defaultScoreRender
|
|
|
- /* 获取声轨列表 */
|
|
|
- let xmlString = await fetch(res.data.xmlFileUrl).then((response) => response.text());
|
|
|
+ // let xmlString = await fetch(res.data.xmlFileUrl).then((response) => response.text());
|
|
|
+ let xmlString: string = await queryMusicXml(res.data.bizId + "", res.data.xmlFileUrl);
|
|
|
xmlString = xmlAddPartName(xmlString);
|
|
|
downloadXmlStr.value = xmlString //给musice-score 赋值xmlString 以免加载2次
|
|
|
- const tracks = xmlToTracks(xmlString) //获取声轨列表
|
|
|
+ /* 获取声轨列表 */
|
|
|
+ const tracks = xmlToTracks(xmlString)
|
|
|
// 是否显示节拍器 (管乐迷 默认显示节拍器)
|
|
|
//state.isMixBeat = res.data?.isMixBeat
|
|
|
/* 设置partIndex */
|