本地音频文件路径是错误的,脚本里的路径也不对。远程播放不了,可能是文件编码问题。
安静 - 厦门
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;
}