首页>Program>source

除了用户执行的Click事件的处理程序之外,在任何其他情况下,我似乎都无法在iOS 4.2.1的Mobile Safari中播放音频媒体.即使那样,如果 player.play() 以任何异步方式被调用( ajax, setTimeout 等等)。

我尝试致电 player.load()player.play()之前 .我尝试在其处理程序调用 player.play()的dom元素上触发click事件 .我尝试同时使用音频和视频标签。

在iOS 4.2.1之前有效的所有漏洞似乎都已关闭.有什么想法吗?

最新回答
  • 2021-1-12
    1 #

    从iOS 4.2.x开始,如果没有用户输入事件(如touchstart),将不会开始下载媒体。

    所以答案是 no ,没有方法可以通过JavaScript或其他方法自动播放媒体。

  • 2021-1-12
    2 #

    有一种方法可以在4.2.1上自动播放视频/音频文件.创建一个iframe,并将其源设置为媒体文件的URL,然后将iframe附加到正文中.它会自动播放。

    var ifr=document.createElement("iframe");
    ifr.setAttribute('src', "http://mysite.com/myvideo.mp4");
    ifr.setAttribute('width', '1px');
    ifr.setAttribute('height', '1px');
    ifr.setAttribute('scrolling', 'no');
    ifr.style.border="0px";
    document.body.appendChild(ifr);
    

  • 2021-1-12
    3 #

    正如其他人在这里所说并根据Apple文档所述,MobileSafari不支持video标签中的autoplay属性.但是,在iOS 6中,它确实可以工作.这似乎是Apple在iOS 6.0.1(可能在iOS 6.1)中修复的错误。

    如果您偶然发现iOS 6中的自动播放功能,请不要依赖于自动播放。

    -Michael

  • 2021-1-12
    4 #

    作为一种解决方法,我尝试将load()/ play()代码绑定到click事件,然后以编程方式触发click事件.这种方法适用于Desktop Safari,但不适用于Mobile Safari。

  • 2021-1-12
    5 #

    该方法在iPad上有效,直到昨晚4.2升级:

    $(function() {
        var Beep = document.createElement('audio');
        Beep.setAttribute('src', 'beep-23.mp3');
        Beep.load();
        Beep.play();
    }
    

    我的 Beep.play(); 仍然适用于点击事件,但初始 Beep.play() 停止工作...

  • java:如何使用Google的Gson API正确反序列化JSON?
  • 从Java方法返回多个值:为什么没有n元组对象?