如何通过 HTML 5 中的 <audio> 标签使用 javascript 使用选定的音频文件?

Posted

技术标签:

【中文标题】如何通过 HTML 5 中的 <audio> 标签使用 javascript 使用选定的音频文件?【英文标题】:How to use the selected audio file using javascript, via <audio> tag in HTML 5? 【发布时间】:2013-03-13 12:40:05 【问题描述】:

如何通过 html5 中的 &lt;audio&gt; 标签使用 javascript 部署选定的音频文件? 我的代码是这样的:

<audio controls id="audio1">
    <source  src="" type="audio/ogg">
<source  src="" type="audio/mpeg">
</audio>

我不想手动提供src。相反,我想通过 JavaScript 动态设置它。

在 JavaScript 中,用于从文件中选择 src

document.querySelector('#fileSelect').addEventListener('click', function(e) 
       // Use the native click() of the file input.
     audio.src = document.querySelector('#fileElem').click();
, false);

我欢迎任何建议。谢谢。

【问题讨论】:

谢谢家伙!和 mariozski 在这里,我想通过使用 javascript 来更改 audio-tag 的 src 属性。在 javascript 中,我正在选择要在 HTML 音频标签中播放的音轨。谢谢大家的帮助。 【参考方案1】:

你为什么不创建一个对象 Audio 并做这样的事情,而不是创建一个标签:

var som = new Audio();
som.src = "powerup.mp3";
som.load();

audio.readyState &gt;= audio.HAVE_CURRENT_DATA 之后 你可以拨打som.play();

这是前段时间为游戏框架编写的示例:https://github.com/hamilton-lima/vaca5/blob/master/lib/audio.js

【讨论】:

hamilton 我看了你的代码,它很好用,而且可以用于游戏。我尝试了您的建议,但它不起作用并且无法使用 js 动态地将所选文件输入获取到 标记源。 我无法使用 标签...仅对我有用,使用 new Audio() 创建音频对象。【参考方案2】:

我不确定我是否理解您想要实现的目标。但是要为您发布的音频设置源:

var element = document.getElementById('audio');
if (element.canPlayType('audio/wav')) 
  element.src = "link";
 else if (element.canPlayType('audio/mpeg')) 
  element.src = "link";
 else 
   alert('Your browser does not support wav/mpeg audio.');

它不工作吗?究竟是什么问题?也许准备一些小提琴来仔细看看你想要实现什么。

【讨论】:

以上是关于如何通过 HTML 5 中的 <audio> 标签使用 javascript 使用选定的音频文件?的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 和 HTML 5 <audio> [关闭]

如何在 HTML 5 中播放经过身份验证的音频流?

在 Chrome 中禁用 HTML <audio> 播放器中的下载按钮 [重复]

HTML标签<audio>在不同浏览器中的出现

HTML5 audio 如何实现播放多个MP3音频

HTML5 <audio>标签如何设置连续播放