当前位置: 首页 > 知识库问答 >
问题:

safari浏览器在iPad/iPhone、Android中不支持HTML5音频标签

澹台承
2023-03-14

我正在做一个基于jquery动画的项目,它的动画在桌面(Firefox,chrome,opera,IE)上很好的工作,也支持HTML5音频标签,但在iPad/iPhone/Android safari音频标签不支持。它在iPad/iPhone/Android Firefox上工作很好。我在很多论坛上搜索过它,都没有得到想要的结果。我使用过这个函数:

function playmusic(file1,file2)   
{ 
    document.getElementById('music11').innerHTML='<audio id="music1"><source src="'+file1+'" type="audio/ogg"><source src="'+file2+'" type="audio/mpeg"></audio>';
    $("#music1").get(0).play();
 }   

共有1个答案

章建木
2023-03-14

尝试在音频标记上添加自动播放属性:

function playmusic(file1, file2) { 
    document.getElementById('music11').innerHTML='<audio autoplay id="music1"><source src="'+file1+'" type="audio/ogg"><source src="'+file2+'" type="audio/mpeg"></audio>';
}

不过,我建议构建一个适当的元素并将其插入DOM中-类似于以下内容:

function playmusic(file1, file2) { 

    var audio = document.createElement('audio');
    audio.preload = 'auto';
    audio.autoplay = true;

    if (audio.canPlayType('audio/ogg')) {
        audio.src = file1;
    }
    else if (audio.canPlayType('audio/mpg')) {
        audio.src = file2;
    }

    document.getElementById('music11').appendChild(audio);
}
 类似资料:
  • 问题内容: 我已经创建了一个HTML5视频播放器(非常简单),可以在iPad和浏览器上完美运行。 但是,当我在iPhone上打开它时,我只得到一个播放按钮,当按下该按钮时,将在我所有东西之上的新窗口中打开本机视频播放器。 这意味着我无法访问自定义控件和时间跟踪(用Java语言编写),因为视频现在是独立运行的。 有什么方法可以覆盖Apple在iPhone上对HTML5视频的控制,并使它像在iPad上

  • 主要内容:HTML5 浏览器支持,将 HTML5 元素定义为块元素,实例,为 HTML 添加新元素,实例,Internet Explorer 浏览器问题,完美的 Shiv 解决方案,实例你可以让一些较早的浏览器(不支持HTML5)支持 HTML5。 HTML5 浏览器支持 现代的浏览器都支持 HTML5。 此外,所有浏览器,包括旧的和最新的,对无法识别的元素会作为内联元素自动处理。 正因为如此,你可以 "教会" 浏览器处理 "未知" 的 HTML 元素。 甚至你可以教会 IE6 (Windows

  • 你可以让一些较早的浏览器(不支持HTML5)支持 HTML5。 HTML5 浏览器支持 现代的浏览器都支持 HTML5。 此外,所有浏览器,包括旧的和最新的,对无法识别的元素会作为内联元素自动处理。 正因为如此,你可以 "教会" 浏览器处理 "未知" 的 HTML 元素。 甚至你可以教会 IE6 (Windows XP 2001) 浏览器处理未知的 HTML 元素。 将 HTML5 元素定义为块元

  • 当我在chrome上使用ipad时,useragent是 Mozila/5.0(iPad;CPU OS 9_3_5像Mac OS X)AppleWebKit/601.1(KHTML像Gecko)CruiOS/57.0.2987.137 Mobile/13G36.... 问题:因为在iPadOS上,Safari上的用户代理与MacOS笔记本上的相同,遵循https://forums.develope

  • 把jade编译为一个可供浏览器使用的单文件,只需要简单的执行: $ make jade.js 如果你已经安装了uglifyjs (npm install uglify-js),你可以执行下面的命令它会生成所有的文件。其实每一个正式版本里都帮你做了这事。 $ make jade.min.js 默认情况下,为了方便调试Jade会把模板组织成带有形如 __.lineno = 3 的行号的形式。 在浏览器

  • Next.js 支持 IE11 和所有的现代浏览器使用了@babel/preset-env。为了支持 IE11,Next.js 需要全局添加Promise的 polyfill。有时你的代码或引入的其他 NPM 包的部分功能现代浏览器不支持,则需要用 polyfills 去实现。 ployflls 实现案例为polyfills。