我在 IOS 設備上播放音頻時遇到問題……我使用的代碼是用于激活/停用聲音:
<audio id="audio">
<source src="sounds/fart.mp3" type="audio/mpeg" />
Your browser does not support the audio element.
</audio>
<button id="audio-btn" class="audio-btn" onclick="toggleAudio()">
<img id="audio-icon" src="img/sound-off.webp" alt="audio_play/pause" />
</button>
let audioIconPlay = false;
function toggleAudio() {
const audioIcon = document.getElementById('audio-icon');
audio.autoplay = true;
audioIconPlay = !audioIconPlay;
if (audioIconPlay) {
audioIcon.src = 'img/sound-on.webp';
} else {
audioIcon.src = 'img/sound-off.webp';
}
}
當我單擊按鈕播放音頻時:
<button
onm ousedown="playMyAudio()"
onm ouseup="playMyAudio()"
>
Fart
</button>
function playMyAudio() {
if (audioIconPlay && audio.paused) {
audio.play();
} else {
audio.pause();
audio.currentTime = 0;
}
}
onTouchPs .: 我也做了這一切
現在,在 android 設備上它可以作業,每次點擊都會播放音頻,而在 iOS 上它只能在第一次點擊時作業!有解決辦法嗎?我試過這個:Allow audio.play() on safari for chat app 但它不起作用。
uj5u.com熱心網友回復:
單擊按鈕時,將執行該功能并播放聲音。但是在 mouseup 事件中,該函式再次執行,然后聲音停止。您是否嘗試過單擊它,所以該功能只會運行一次?還是應該只在按下按鈕時播放聲音?
順便說一句,在觸摸屏設備上,onmousedown 的等價物是 ontouchstart,onmouseup 的等價物是 ontouchend。但我建議使用onclick。
uj5u.com熱心網友回復:
我做了一些測驗,在實踐中它可以作業,但不像 android 那樣直接......我的問題是我使用的音頻太短了!它持續一秒鐘,甚至更短......所以在iphone上它沒有時間播放這么短的聲音,而且它似乎只播放一次,但實際上它總是只播放其他時間沒有聽到,因為它沒有時間停下來重新播放一遍!我嘗試插入更長的音頻并且它可以作業,問題是如果我在按鈕上快速單擊幾次,我不會得到與在 android 上相同的結果,即停止音頻,重置時間并再次播放,我不知道,因為但似乎 iphone 被延遲并且無法做到這一點,而在 android 設備上是的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/516022.html
