闽南⽅⾔⼤词典(文字版)

本地音频文件路径是错误的,脚本里的路径也不对。远程播放不了,可能是文件编码问题。

安静 - 厦门
gdau://12dd4e01f67c6b63457b4decd6225d1c/xiamen/4773957806384480257.mp3
function play(e) {
    e.preventDefault(); // 阻止链接的默认行为
    e.stopPropagation(); // 阻止事件冒泡

    var ele = e.currentTarget; // 获取事件触发的元素
    var localHref = ele.getAttribute("href"); // 获取本地音频路径(自定义协议链接)
    var remoteHref = ele.getAttribute("remote-href"); // 获取远程音频路径
    var image = ele.querySelector('img'); // 获取图标元素

    // 获取图标路径 GD 文件路径如下形式:bres://12dd4e01f67c6b63457b4decd6225d1c/ic_horn_red.png
    var iconHref = image.src;
    // 获取 GD 文件路径前缀 bres://12dd4e01f67c6b63457b4decd6225d1c/
    var fileHref = iconHref.substring(0, iconHref.lastIndexOf('/')) + "/";
    image.src = fileHref + 'ic_play.gif'; // 更改图标为播放状态

    var audio = new Audio();
    // 尝试播放本地音频
    audio.src = localHref; // 将音频源设置为本地链接
    audio.play().then(() => {
        console.log("Local audio playing.");
    }).catch((err) => {
        console.log("Local audio failed, trying remote: ", err);
        // 如果本地音频播放失败,尝试远程音频
        audio.src = remoteHref;
        audio.load(); // 为了确保音频路径更新后重新加载音频
        audio.play().catch((err) => {
            console.log("Remote audio play failed: ", err);
            image.src = fileHref + 'ic_horn_red.png'; // 远程播放失败,恢复原始图标
        });
    });

    // 监听音频播放结束事件
    audio.onended = function () {
        image.src = fileHref + 'ic_horn_red.png'; // 播放完毕,恢复原始图标
    };

    return false;
}

1 个赞