|
@@ -75,20 +75,12 @@ const resetFrequency = (list: any[]) => {
|
|
|
* 乐器指法处理
|
|
|
*/
|
|
|
const setNoteHalfTone = (list: any[]) => {
|
|
|
- const instrumentNames = ["melodica"];
|
|
|
+ const instrumentNames = ["hulusi-flute"];
|
|
|
if (!state.fingeringInfo?.name || !instrumentNames.includes(state.fingeringInfo.name)) return list;
|
|
|
for (let i = 0; i < list.length; i++) {
|
|
|
const note = list[i];
|
|
|
- if (note.noteElement?.pitch?.accidentalXml) {
|
|
|
- const accidentalXml = note.noteElement?.pitch?.accidentalXml;
|
|
|
- if ([]) {
|
|
|
- }
|
|
|
- if (accidentalXml === "flat") {
|
|
|
- // note.realKey = note.realKey + 1;
|
|
|
- } else if (accidentalXml === "sharp") {
|
|
|
- // note.realKey = note.realKey + 1;
|
|
|
- }
|
|
|
- }
|
|
|
+ if (note.realKey === 0) continue;
|
|
|
+ note.realKey = note.realKey + 12;
|
|
|
}
|
|
|
return list;
|
|
|
};
|
|
@@ -105,6 +97,7 @@ export default defineComponent({
|
|
|
headerHide: false,
|
|
|
fingerPreView: false,
|
|
|
orientation: 0,
|
|
|
+ fingerPreViewGuide: false,
|
|
|
});
|
|
|
const getAPPData = async () => {
|
|
|
const screenData = await isSpecialShapedScreen();
|
|
@@ -132,7 +125,7 @@ export default defineComponent({
|
|
|
//给app传伴奏
|
|
|
const pushAppMusic = () => {
|
|
|
api_cloudAccompanyMessage(state.accompany);
|
|
|
- }
|
|
|
+ };
|
|
|
// console.log(route.params, query)
|
|
|
/** 获取曲谱数据 */
|
|
|
const getMusicInfo = (res: any) => {
|
|
@@ -194,7 +187,7 @@ export default defineComponent({
|
|
|
// isRhythmicExercises();
|
|
|
|
|
|
// 设置指法
|
|
|
- const code = mappingVoicePart(state.subjectId, "INSTRUMENT")
|
|
|
+ const code = mappingVoicePart(state.subjectId, "INSTRUMENT");
|
|
|
state.fingeringInfo = subjectFingering(code);
|
|
|
console.log("🚀 ~ state.fingeringInfo:", state.fingeringInfo, state.subjectId, state.track);
|
|
|
|
|
@@ -246,7 +239,7 @@ export default defineComponent({
|
|
|
}
|
|
|
state.times = formateTimes(osmd);
|
|
|
state.times = resetFrequency(state.times);
|
|
|
- // state.times = setNoteHalfTone(state.times);
|
|
|
+ state.times = setNoteHalfTone(state.times);
|
|
|
console.log("🚀 ~ state.times:", state.times, state.subjectId);
|
|
|
try {
|
|
|
metronomeData.metro = new Metronome();
|
|
@@ -341,16 +334,19 @@ export default defineComponent({
|
|
|
}
|
|
|
);
|
|
|
/** 指法预览切换 */
|
|
|
- watch(() => detailData.fingerPreView, () => {
|
|
|
- console.log(2342)
|
|
|
- window.parent.postMessage(
|
|
|
- {
|
|
|
- api: "api_fingerPreView",
|
|
|
- state: detailData.fingerPreView,
|
|
|
- },
|
|
|
- "*"
|
|
|
- );
|
|
|
- })
|
|
|
+ watch(
|
|
|
+ () => detailData.fingerPreView,
|
|
|
+ () => {
|
|
|
+ console.log(2342);
|
|
|
+ window.parent.postMessage(
|
|
|
+ {
|
|
|
+ api: "api_fingerPreView",
|
|
|
+ state: detailData.fingerPreView,
|
|
|
+ },
|
|
|
+ "*"
|
|
|
+ );
|
|
|
+ }
|
|
|
+ );
|
|
|
onMounted(() => {
|
|
|
window.addEventListener("resize", resetMusicScore);
|
|
|
});
|
|
@@ -373,13 +369,13 @@ export default defineComponent({
|
|
|
// url: url,
|
|
|
// orientation: state.fingeringInfo.orientation || 0,
|
|
|
// });
|
|
|
-
|
|
|
- if (state.playState === 'play') {
|
|
|
- togglePlay('paused')
|
|
|
+
|
|
|
+ if (state.playState === "play") {
|
|
|
+ togglePlay("paused");
|
|
|
setTimeout(() => {
|
|
|
detailData.fingerPreView = true;
|
|
|
- }, 500)
|
|
|
- return
|
|
|
+ }, 500);
|
|
|
+ return;
|
|
|
}
|
|
|
detailData.fingerPreView = true;
|
|
|
};
|
|
@@ -388,6 +384,7 @@ export default defineComponent({
|
|
|
api_setRequestedOrientation(0);
|
|
|
}
|
|
|
detailData.fingerPreView = false;
|
|
|
+ detailData.fingerPreViewGuide = false;
|
|
|
};
|
|
|
return () => (
|
|
|
<div
|
|
@@ -476,8 +473,16 @@ export default defineComponent({
|
|
|
</>
|
|
|
)}
|
|
|
|
|
|
- <Popup teleport="body" v-model:show={detailData.fingerPreView} position="bottom">
|
|
|
+ <Popup
|
|
|
+ teleport="body"
|
|
|
+ v-model:show={detailData.fingerPreView}
|
|
|
+ position="bottom"
|
|
|
+ onOpened={() => {
|
|
|
+ detailData.fingerPreViewGuide = true;
|
|
|
+ }}
|
|
|
+ >
|
|
|
<ViewFigner
|
|
|
+ show={detailData.fingerPreViewGuide}
|
|
|
subject={state.fingeringInfo.name}
|
|
|
isComponent={true}
|
|
|
onClose={handleCloseFignerView}
|