我在數(shù)組中有一些 Web URL tracks,我正在通過 JavaScript 中的 HTML5 音頻 API 播放這些 URL。當(dāng)我點(diǎn)擊暫停時它會暫停。但是一旦暫停,當(dāng)我單擊播放時,音頻就會從頭開始播放。HTML 規(guī)范提到了該audio.currentTime屬性,因此我嘗試在一個名為 的單獨(dú)變量中跟蹤它c(diǎn)urrentTime,并在再次恢復(fù)之前對其進(jìn)行設(shè)置,但這似乎不起作用,因?yàn)橐纛l仍然從頭開始。我花了相當(dāng)多的時間進(jìn)行實(shí)驗(yàn)和谷歌搜索,但我看不出這里出了什么問題。在我停下來查看這段代碼的邏輯時,音頻沒有理由不播放。有其他人經(jīng)歷過這種情況并知道解決方法嗎?這是我的 js 文件:$(function() { let trackTitle = $('#title'); let prevBtn = $('#btn-prev'); let playPauseBtn = $('#btn-play-pause'); let nextBtn = $('#btn-next'); let seekBarFill = $('.seek-bar .fill'); let tracks = [ 'http://traffic.libsyn.com/minutephysics/Why_You_Should_Care_About_Nukes.mp4?dest-id=95145', 'http://traffic.libsyn.com/minutephysics/.mp4?dest-id=95145', 'http://traffic.libsyn.com/minutephysics/Transporters_and_Quantum_Teleportation.mp4?dest-id=95145', 'http://traffic.libsyn.com/minutephysics/The_Limb_of_the_Sun.mp4?dest-id=95145', 'http://traffic.libsyn.com/minutephysics/_1.mp4?dest-id=95145', 'http://traffic.libsyn.com/minutephysics/Concrete_Does_Not_Dry_Out.mp4?dest-id=95145' ]; let audio = new Audio(); let currentTrack = 0; let currentTime = 0; function playTrack() { audio.src = tracks[currentTrack]; trackTitle.html('<a href=' + tracks[currentTrack] + '>' + tracks[currentTrack] + '</a>'); audio.currentTime = currentTime; audio.play().then(function() { $('#btn-play-pause img').attr('src', 'static/pause.png'); }); } function playOrPauseTrack() { if(audio.paused) { console.log('play clicked'); audio.currentTime = currentTime; // attempted workaround, still not working playTrack(); console.log('play/current time=' + audio.currentTime); } else { console.log('pause clicked'); audio.pause(); currentTime = audio.currentTime; console.log('pause/current time=' + currentTime); $('#btn-play-pause img').attr('src', 'static/play.png'); } }});
1 回答

侃侃無極
TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個贊
當(dāng)您設(shè)置音頻元素的src
屬性時,您將重置所有內(nèi)容。
只需不要設(shè)置它,也不要重置currentTime
. 您所要做的就是打電話.play()
恢復(fù)比賽。
- 1 回答
- 0 關(guān)注
- 147 瀏覽
添加回答
舉報
0/150
提交
取消