|
@@ -374,6 +374,8 @@ export async function changeCombineAudio (combineIndex: number){
|
|
|
audioData.combineIndex = -1
|
|
|
state.playSource = "background"
|
|
|
state.music = ""
|
|
|
+ // 当开启节拍器的时候,切为伴奏的时候合成节拍器1
|
|
|
+ await handleLoadBeatMusic()
|
|
|
// 当没有背景音文件的时候
|
|
|
if(!state.accompany) {
|
|
|
state.noMusicSource = true
|
|
@@ -398,15 +400,18 @@ export async function changeCombineAudio (combineIndex: number){
|
|
|
const music = await createAudio(musicUrl)
|
|
|
const beatMusic = await mergeBeatAudio(musicUrl)
|
|
|
// 当没有背景音的时候 需要绑定事件
|
|
|
- if(!state.accompany){
|
|
|
+ if(!audioData.songCollection.backgroundEle){
|
|
|
if(music){
|
|
|
music.addEventListener("play", onPlay);
|
|
|
music.addEventListener("ended", onEnded);
|
|
|
}
|
|
|
- if(beatMusic){
|
|
|
- beatMusic.addEventListener("play", onPlay);
|
|
|
- beatMusic.addEventListener("ended", onEnded);
|
|
|
- }
|
|
|
+ }
|
|
|
+ // 取消掉背景音绑定的时候,然后给当前原音节拍音频绑定事件,这样防止没有背景节拍的时候,能给
|
|
|
+ if(beatMusic){
|
|
|
+ audioData.songCollection.beatBackgroundEle?.removeEventListener("play", onPlay)
|
|
|
+ audioData.songCollection.beatBackgroundEle?.removeEventListener("ended", onEnded)
|
|
|
+ beatMusic.addEventListener("play", onPlay);
|
|
|
+ beatMusic.addEventListener("ended", onEnded);
|
|
|
}
|
|
|
audioData.combineMusicEles.push({
|
|
|
key: combineIndex,
|