HTML5音频在移动Chrome(安卓)上无法播放

3
我是一位能翻译文本的助手。
我有一个HTML5 元素,可以在单击后播放嵌入的音频文件。以下是代码示例:
HTML:
<span class="sound">
    <audio id="yourAudio" preload="none" onplay="playing(this);" onended="stopped(this);">
        <source src="/sandboxassets/pronunciations/estest106f444b36e7b5fdb88a10706d397dc2.mp3" type="audio/mpeg">
    </audio>
    <a href="javascript:;" id="audioControl" onclick="playclip(this);" title="Hear it spoken">
        <i class="fa fa-2x fa-volume-down pronounce"></i>
    </a>
</span>

JS:

// play pronunciation file
function playclip(mp3){
    mp3.parentNode.getElementsByTagName('audio')[0].play();
    return false; // Prevent Default Action
}
function playing(thisicon){
    // var icon = document.getElementsByClassName("pronounce")[0];
    var icon = thisicon.parentNode.getElementsByClassName('pronounce')[0];
    icon.className = "fa fa-2x fa-volume-up pronounce";
}
function stopped(thisicon){
    // var icon = document.getElementsByClassName("pronounce")[0];
    var icon = thisicon.parentNode.getElementsByClassName('pronounce')[0];
    icon.className = "fa fa-2x fa-volume-down pronounce";
}

这个设置在桌面浏览器上完美运行:Chrome,Edge和Opera(尚未在Safari,IE和Firefox上进行测试)。但是,在Chrome Android上单击无效。有什么想法我可能做错了什么?该代码位于www.peppyburro.com/sandboxdictionary/fugar上。一个具有完全相同标题的问题存在于此处,但提供的解决方案似乎不是我要找的,因为我没有在我的网站上显式添加.htaccess密码保护。

当然会被调用。这就是它在桌面浏览器中的工作方式。 - TheLearner
1个回答

5

Android和iPhone的触摸事件

touchstart ↔ mousedown(按下)
touchend ↔ mouseup(松开)
touchmove ↔ mousemove(移动)
touchcancel(取消)

document.getElementById('yourAudio').addEventListener("mouseup", tapOrClick, false);
document.getElementById('yourAudio').addEventListener("touchend", tapOrClick, false);

function tapOrClick(e) {
    var mp3 = e.target;
        mp3.parentNode.getElementsByTagName('audio')[0].play();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接