如何用js控制audio元素连续播放mp3文件

2013-10-12 15:57:33 +08:00
 loading
web app需要播放如“叮咚-t123-进站”
共三个文件,求解。

另:ajax一直取数据,如何判断某条数据变化后播放呢,如t123的状态从“进站”变为“晚点”

如何处理优雅而高效
7689 次点击
所在节点    问与答
6 条回复
Perry
2013-10-12 16:48:51 +08:00
没有很理解你的意思。
ajax取得的数据辨别进站和晚点后各自播放不一样的mp3文件:“叮咚-t123-进站”,“叮咚-t123-晚点”
叮咚是每次都需要的?然后可以把“t123”的mp3文件的名字统一成列车的代号方便直接variable带入链接,进站和晚点就是一个判断了。
loading
2013-10-12 17:32:26 +08:00
@Perry 页面一直轮训,json实际是个字典

t123:晚点

如果内容变为(即与上一次取得的json数据相比)

t123:进站

就播报对应音频。



对于监视变化然后给出视觉提醒我已经写出“能跑”的代码了,当前是声音不好处理,因为放一次就有3个文件,分别是:叮咚;t123;进站。

不知这个使用audio元素的js函数怎么写,函数应该是:

function(车次,状态){
blabla

pandada8
2013-10-12 17:46:04 +08:00
要不在audio元素的播放完成事件里面再打开下一个文件?
yimity
2013-10-12 17:48:39 +08:00
替换下 audio 的 src 就好了么。
icevil
2013-10-12 17:49:35 +08:00
@loading

function(车次,状态) {

var tipSound = new Audio();
tipSound = new Audio("叮咚.mp3");
$(tipSound).bind("ended", function() {
tipSound = new Audio(车次.mp3);
tipSound.play();
$(tipSound).bind("ended", function() {
tipSound = new Audio(状态.mp3);
tipSound.play();
});
});
tipSound.play();

}

github 打开慢,懒得贴 gist 了,未测试,不知道可行否。。
loading
2013-10-12 17:58:28 +08:00
突然发现如果能以队列方式播放就完美了,只要push进去,就依次放出来。
@icevil 感谢,应该可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/85346

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX