- 46
- 0
打算设计一个播放器,其中一个函数控制点击菜单某首歌曲即可播放,在该函数内调用music.play()后继续console.log(music.src)是可以正常显示src路径的。
然而在另一个控制播放下一曲的函数中,不论输出src还是currentSrc都是显示未定义,甚至输出currentTime等相关属性都是显示为0.相关代码如下:
function prevSong(msc){ //上一首歌
let s = msc.currentSrc;
let tar;
/*
返回当前播放的节点给tar,代码略
*/
msc.pause();
if(tar.previousSibling.nodeName == 'LI'){
let index = tar.previousSibling.innerHTML;
msc.src = 'src/music/'+index+'.mp3';
}else{
let chd = tar.parentNode.childNodes;
let res = chd[chd.length-1];
msc.src = 'src/music/'+res.innerHTML+'.mp3'
}
//msc.load();
msc.play();
}
另外,如何正常获取音频长度duration?我照着网上各种解决方法,使用了onloadedmetadata甚至是promise,输出的都是NaN
直接把demo给post上来吧:http://www.malakh.xyz/demo2/
js:http://www.malakh.xyz/demo2/s...
- 共 0 条
- 全部回答
-
千面飞狐 普通会员 1楼
在JavaScript中,无法直接获取audio的src属性或duration属性,因为它们是浏览器提供的API,而JS的运行环境是浏览器环境。如果你想要获取audio的src属性,你需要使用一个audio对象的play()方法。
如果你想要获取audio的duration属性,你需要先创建一个audio对象,然后调用它的getDuration()方法。
以下是一个例子:
javascript var audio = new Audio(); audio.src = "path/to/audio.mp3"; audio.play(); var duration = audio.getDuration(); console.log(duration); // 输出audio的duration属性如果你的audio对象的duration属性为NaN,那么在获取它的src属性时也会返回NaN。这是因为audio的duration属性是一个JavaScript数字,而JS的getDuration()方法只接受字符串类型的属性。
如果你想要获取audio的src属性,你可以使用以下的JavaScript代码:
javascript var audio = new Audio(); audio.src = "path/to/audio.mp3"; console.log(audio.src); // 输出audio的src属性
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
