解決方法: audio.load() let playPromise = audio.play() if (playPromise !== undefined) { playPromise.then(() => { audio.play() }).catch(()=> { }) } 原因: 從Chrome50開始,對<video>或<audio>元素的play()調用返回一個Promise。 一個異步返回單個結果的函數。如果回放成功,Promise就會實現,而play事件也會同時觸發,對應執行.then。 如果回放失敗,Promise將被拒絕,同時會有一個錯誤消息解釋失敗,對應執行.catch。 錯誤發生的過程為: 1.media.play() 開始異步加載video/audio內容。 2.media.pause() 在video/audio沒有准備好時中斷加載。 3.media.play() 此時進行繼續播放,報錯。