Tag: html5 audio

指定中的src =“”是没有.mp3扩展名的mp3文件?

我需要一种方法来指定类似的东西 有一个mp3文件作为源。 我无法在url的末尾使用.mp3扩展名,所以我需要其他方法来实现这一点。 我正在使用自定义播放器jQuery插件,如果它无法确定音频标签中指定的文件格式,则会回退到旧的浏览器版本。 我有办法实现这个目标吗?

按钮单击声音

这就是我想做的事情: 我有30个按钮。 我希望当点击每个按钮时,它会播放不同的mp3文件。 像这样http://www.soundjig.com/pages/soundfx/beeps.html 我只知道如何点击1按钮播放1个音频文件,如下所示: play var audio = $(“#mysoundclip”)[0]; console.log(audio); $(“button.play”).click(function() { audio.play(); }); 我不想将所有这些代码应用到所有按钮 – 无论如何要快速执行此操作? 谢谢你的阅读!

如何在元素更改时播放声音,例如SO Chat吗?

我希望在页面上元素发生变化时播放声音。 我知道如何做到这一点,但我不能让它只在第一次更改时播放,并且不要在以后执行,直到用户聚焦窗口(选项卡)并再次模糊它。 我目前的代码: var notif = new Audio(‘http://cycle1500.com/sounds/infbego.wav’); if (window.innerHeight === window.outerHeight) { $(window).bind(‘DOMNodeInserted’, function() { notif.play(); }); }

当我尝试获得缓冲时间时,为什么audio.buffered.end(0)会收到错误消息

我正在使用HTML5和jQuery构建mp3播放列表播放器。 在这个播放器中,有一个水平条逐渐与mp3文件的缓冲存在一起增长。 这是我的完整代码: get buffered end HTML5: CSS: #buffered{ border:solid #ccc 1px; height:10px; background:red; display:block; width:1%; } 使用Javascript: var track = document.getElementById(“music”); setInterval(function(){ var w = 100*(track.buffered.end(0))/track.duration; $(‘#buffered’).css(“width”,w+”%”); }, 1000); 但Firefox给我一条错误消息说: IndexSizeError:索引或大小为负数或大于允许的数量 var w = 100 *(track.buffered.end(0))/ track.duration; 和谷歌铬合金说: 未捕获的IndexSizeError:无法在’TimeRanges’上执行’end’:提供的索引(0)大于或等于最大边界(0)。

一个好的文本到语音JavaScript库

我正在为我的应用程序寻找一个好的文本到语音javascript库。 我环顾四周,看到了Jtalk和speak.js 。 但我不确定哪一个出去。 我很想知道人们对它们的利弊,我很想知道你们有没有其他Javascript插件。 我基本上可视化动画,我想为视障人士添加一些音频,告诉他们发生了什么。

如何通过函数获取audio.duration值

我的音频播放器我需要获得音轨的持续时间。 我需要一个获取音频的src并返回其持续时间的函数。 这是我想要做的但是不起作用: function getDuration(src){ var audio = new Audio(); audio.src = “./audio/2.mp3”; var due; return getVal(audio); } function getVal(audio){ $(audio).on(“loadedmetadata”, function(){ var val = audio.duration; console.log(“>>>” + val); return val; }); } 我试图分成两个function,但它不起作用。 如果它像工作function那样会很棒。 任何的想法?

使用HTML5音频更改适用于Chrome但不适用于Safari

我正在尝试制作可在每个主要浏览器中使用的HTML5音频播放列表:Chrome,Safari,Firefox,IE9 +。 但是,我无法弄清楚如何以跨浏览器兼容的方式更改源。 更新例如,更改标签的src可在Chrome中使用,但不适用于Safari。 虽然@ eivers88的解决方案使用canPlayType工作,但我更容易改变标签的src 。 任何人都可以向我解释为什么我的代码直接在Chrome下工作,但不适用于Safari? JS: var audioPlayer=document.getElementById(‘audioPlayer’); var mp4Source=$(‘source#mp4’); var oggSource=$(‘source#ogg’); $(‘button’).click(function(){ audioPlayer.pause(); mp4Source.attr(‘src’, ‘newFile.mp4’); oggSource.attr(‘src’, ‘newFile.ogg’); audioPlayer.load(); audioPlayer.play(); }); HTML: Next song 点击按钮后检查HTML, 确实在Safari中发生变化,只是没有发出HTTP请求,所以文件没有得到load() ed和play() ed。 有没有人对此有任何想法?

Safari音频标签不起作用

我使用这个简单的代码处理HTML5音频标签: HTML JS $(‘#audioFrenata’).on(‘ended’, function() { manageImageObjectsLevel(); }).get(0).play(); 使用Chrome,这可以正常工作,Windows上的Safari 5.1.7和iPad 3上的Safari我收到: ‘undefined’ is not a function (evaluating ‘$(‘#audioFrenata’).on(‘ended’, function() { manageImageObjectsLevel(); }).get(0).play()’) 任何人都知道为什么?

预加载音频文件/事件?

在我启动基于JS的应用程序之前,我正在预加载所有资产: assets = [….]; // files $.each(assets,function(){ var r = /\.([^\.]+)$/; var ext = r.exec(this); //get file type if (ext[1] == ‘png’){ var tmp = new Image(); } else if (ext[1] == ‘mp3’){ var tmp = new Audio(); } tmp.src = this; tmp.onload = function(){ var i = assets.indexOf(this); assets.splice(i,1); if (!assets.length){ console.log(‘all loaded’); app.build(); […]

HTML5音频 – 声音仅播放一次

我正在使用Chrome,这是我的代码: $(‘.sound’).live(‘click’, function () { var sound = $(“#letter_audio”)[0]; sound.pause(); sound.currentTime = 0; sound.play(); return false; }); 我第一次点击播放时声音怎么播放。 然后当我再次点击时,它会暂停,就像代码一样。 但它只是暂停? 我想要它播放,然后当我再次点击它时,回到0并再次播放,如代码中所示?