天津網(wǎng)站推廣方法今日頭條熱搜榜
mounted() {this.ScanAudio('http://118.178.137.235:88/ipoker.mp3', 3); // 開(kāi)始播放音頻},ScanAudio(url, count) {// 遞歸終止條件:當(dāng)循環(huán)次數(shù)小于等于 0 時(shí),停止遞歸if (count <= 0) return;// 創(chuàng)建內(nèi)部音頻上下文對(duì)象var music = uni.createInnerAudioContext();// 設(shè)置音頻資源鏈接music.src = url;// 開(kāi)始播放音頻music.play();// 監(jiān)聽(tīng)音頻播放結(jié)束事件music.onEnded(() => {// 銷(xiāo)毀音頻上下文對(duì)象,以釋放資源music.destroy();// 在音頻播放結(jié)束后,延遲一定時(shí)間后重新調(diào)用 ScanAudio 函數(shù)進(jìn)行循環(huán)播放setTimeout(() => {// 遞減循環(huán)次數(shù),繼續(xù)下一次播放循環(huán)this.ScanAudio(url, count - 1);}, music.duration * 1000); // 延遲時(shí)間等于音頻時(shí)長(zhǎng)乘以 1000 毫秒});
}
說(shuō)明
-
當(dāng)調(diào)用
ScanAudio(url, count)
時(shí),它首先檢查循環(huán)次數(shù)count
是否小于等于 0。如果是,表示遞歸終止條件已滿足,停止遞歸。 -
如果循環(huán)次數(shù)不小于等于 0,函數(shù)會(huì)創(chuàng)建一個(gè)內(nèi)部音頻上下文對(duì)象
music
,然后設(shè)置該音頻的資源鏈接為提供的url
。 -
調(diào)用
music.play()
開(kāi)始播放音頻。 -
監(jiān)聽(tīng)
music.onEnded
事件,當(dāng)音頻播放結(jié)束時(shí)觸發(fā)。在此事件處理程序中,會(huì)先銷(xiāo)毀音頻上下文對(duì)象以釋放資源,然后根據(jù)音頻的時(shí)長(zhǎng)乘以 1000 毫秒(即延遲一段時(shí)間)重新調(diào)用ScanAudio
函數(shù),實(shí)現(xiàn)循環(huán)播放。循環(huán)次數(shù)減少 1,從而控制循環(huán)次數(shù)。
后端傳給多個(gè)語(yǔ)音如何播放
<template><view class="content">1212</view>
</template><script>
export default {data() {return {};},mounted() {const audioUrls = ['http://118.178.137.235:88/ipoker.mp3', 'http://118.178.137.235:88/ipoker.mp3', 'http://118.178.137.235:88/ipoker.mp3'];// 開(kāi)始按順序播放音頻this.playSequentialAudioWithFixedDelay(audioUrls, 0, 3);},methods: {playSequentialAudioWithFixedDelay(urls, currentIndex, delayInSeconds) {if (currentIndex >= urls.length) {return;}const music = uni.createInnerAudioContext();music.src = urls[currentIndex];music.play();music.onEnded(() => {music.destroy();setTimeout(() => {this.playSequentialAudioWithFixedDelay(urls, currentIndex + 1, delayInSeconds);}, delayInSeconds * 1000);});}}
};
</script><style>
/* 樣式省略 */
</style>
?