简体   繁体   English

Safari浏览器在ipad / iphone,Android中不支持HTML5音频标签

[英]safari browser doesn’t support HTML5 audio tag in ipad/iphone,Android

I am working on a project based on jquery animation its animation works fine on desktop (Firefox,chrome,opera,IE) also support HTML 5 audio tag but in Ipad/iphone/ Android safari audio tag doesn't support.Its works fine on Ipad/iphone/ Android firefox.i have searched it in many forum don't get desire Result. 我正在基于jQuery动画的项目上工作,其动画在桌面(Firefox,chrome,opera,IE)上也能正常工作,也支持HTML 5音频标签,但在Ipad / iphone / Android Safari音频标签中不支持。 Ipad / iphone / Android firefox.i已在许多论坛中搜索到它并没有得到想要的结果。 I have used this function : 我已经使用了这个功能:

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();
 }   

I have called function like : playmusic(2.ogg','2.mp3'); 我已经调用过类似的函数:playmusic(2.ogg','2.mp3'); If I give autoplay in audio tag it works but play method not working and I have to use play method as in my application needs sound in particular event see the link http://solutions.hariomtech.com/jarmies/ 如果我在音频标签中提供了自动播放功能,则可以使用,但播放方法不起作用,并且我必须使用播放方法,因为在特殊情况下我的应用程序需要声音,请参见链接http://solutions.hariomtech.com/jarmies/

I have also changed my function and give direct audio tag in div and call function the same problem I face as I mentioned above. 我还更改了我的功能,并在div和call函数中提供了直接音频标签,这与我上面提到的问题相同。 I need sound play in background without any click.if I use auto play method so it play sound only one time but I need sound multiple time on event. 我需要在后台播放声音,而无需任何点击。如果我使用自动播放方法,那么它只能播放一次声音,但是我需要在事件中多次播放声音。

Try to add an autoplay attribute on the audio tag: 尝试在音频标签上添加autoplay属性:

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>';
}

I would however recommend building a proper element and insert that into the DOM - something like this: 但是,我建议您构建一个适当的元素并将其插入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);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM