HTML音频元素如何重放?

Posted

技术标签:

【中文标题】HTML音频元素如何重放?【英文标题】:HTML audio Element how to replay? 【发布时间】:2011-08-10 03:11:32 【问题描述】:

我设置了一个 html5 页面,其中包含一个节点。 该页面将播放音乐(mp3格式),但它只是播放声音结束,我使用javascript来控制音频元素,即使这样,我也无法重播它,只能停止。

HTML5 音频元素是否支持重播?怎么做?

【问题讨论】:

【参考方案1】:

请阅读本文

http://www.position-absolute.com/articles/introduction-to-the-html5-audio-tag-javascript-manipulation/

对于重播事件

你可以设置选项,在重播点击

audioElement.currentTime=0;
audioElement.play();

【讨论】:

它不适用于所有浏览器。 .load() 然后.play() 总是有效,但它可能会使用更多数据...【参考方案2】:

上述建议对我不起作用或在不适用的情况下。当我的代码需要时,我需要重放声音。

以下代码有效(至少 chrome):

audioElement.setAttribute('src', audiosrc); audioElement.play();

换句话说,再次设置 src 属性,然后 play() 完成了这项工作

【讨论】:

这是有效的,但每次都会对声音资源提出新的请求。 @valkirilov 但它可以在code.google.com/p/chromium/issues/detail?id=121765附近工作【参考方案3】:

html5音频元素有一个loop属性,设置为loop=loop

http://www.w3schools.com/html5/html5_audio.asp

【讨论】:

但我只想播放音频,然后等待用户点击时再次播放【参考方案4】:

如果托管视频的服务器不支持在客户端搜索(HTTP RangeRequest),则该命令

audioElement.currentTime=0;

来自@JapanPro 的答案在 Chromium 中被默默忽略。此行为填写为crbug #121765。

有一个handy guide on MDN how to configure your server 玩得很好。但如果你不能,我已经成功了

audioElement.load();

不出所料,它会重新加载音频源并作为副作用寻找开头。不太好,但它非常直观且有效。

来源:http://www.whatwg.org/specs/web-apps/current-work/#loading-the-media-resource

【讨论】:

【参考方案5】:

你可以试试这个:

<audio id="audiotag1" src="audio/flute_c_long_01.wav" preload="auto"></audio>
<a href="javascript:play_single_sound();">Play 5-sec sound on single channel</a>
<script type="text/javascript">
    function play_single_sound() 
        document.getElementById('audiotag1').play();
    
</script>

参考:http://www.storiesinflight.com/html5/audio.html

【讨论】:

【参考方案6】:

不要使用node.load(),这对于慢速设备来说太慢了。

要停止,您应该使用:

node.currentTime = 0

要重播,你可以这样做:

node.currentTime = 0
node.play()

【讨论】:

【参考方案7】:

用途:

  audio.pause() // important!!!
  audio.currentTime = 0
  audio.play()

【讨论】:

【参考方案8】:

在 HTML5 中,您只需设置 audioElement.loop='true';

【讨论】:

以上是关于HTML音频元素如何重放?的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5:QMediaPlayer 无法从 QBuffer 重放音频

如何以统一的方式重放声音?

如果 DOM 中不存在视频/音频元素,如何设置 html5 视频/音频的播放速度

停止并快速重放 AudioQueue

HTML5 音频(Audio)元素使用详解

高清晰音频管理器,怎么突然调解不了音效了?