Mobile Safari和UIWebView中的多个HTML5音频标签

时间:2010-09-14 16:42:24

标签: uiwebview mobile-safari html5-audio

当我使用默认控件时,我遇到有多个<audio>的网页时出现问题。我还没有测试过深入创建自定义控件。

自定义控件有一个“开始”按钮,可以更改为“暂停”。好的,可以正常暂停音频。但是,当你转到页面上的第二个音频控件时,它将永远不会播放第一个音频控件 暂停。如果您让第一个播放完全播放,则在单击播放按钮时将播放第二个播放。

在任何地方都有“停止”功能吗?如果是这样,那就意味着我需要创建一个自定义控件,我可以这样做,但我没有发现事件被用于实际“停止”第一个 播放。此外,在播放第二个音频之前,用户必须暂停然后知道他们需要按下停止按钮可能会让人感到困惑。

希望我可以使用一个脚本来检查以前的音频是否暂停,然后停止第一个音频或重置它然后继续播放第二个音频。

有什么想法吗? 谢谢, 琳达 附:我对JavaScript很痛苦,所以如果有人帮助了这个脚本,我会很感激。

2 个答案:

答案 0 :(得分:1)

最后。这很有效。

<script type="text/javascript">
setTimeout(function() {
    var myAudio = document.getElementsByTagName('audio')[0];
    var myAudio1 = document.getElementsByTagName('audio')[1];
    myAudio1.addEventListener('play', function(){
        myAudio.pause();
    }, false);

    myAudio.addEventListener('play', function(){
        myAudio1.pause();
    }, false);
},1000);

答案 1 :(得分:0)

我在移动Safari上使用以下代码收到这些错误: INVALID_STATE_ERR:DOM异常11 INDEX_SIZE_ERR:DOM例外1



setTimeout(function() {
document.getElementById('audio_3').addEventListener('play', function(){
document.getElementById('audio_4').currentTime = 0;
document.getElementById('audio_4').pause();
}, false);

document.getElementById('audio_4').addEventListener('play', function(){
document.getElementById('audio_3').currentTime = 0;
document.getElementById('audio_3').pause();
}, false);
},1000);

相关问题