无法使HTML5音频标记在移动浏览器上运行

时间:2015-02-14 11:39:11

标签: javascript android ios html5 audio

我有一个使用HTML5 <audio>标记的网络应用程序,出于某种原因,虽然它在Windows和Mac PC上运行良好,但它无法在iOS和Android上运行。 这是我的代码的相关片段:

使用Javascript:

var audioElement = document.querySelector('#audioplayer');
var source = document.querySelector('#mp3');
source.src = tokObject._url;
audioElement.load();
audioElement.play();

HTML:

<center>
    <audio id="audioplayer" style="width:480px;">
        <source id="mp3" src="random-placeholder" type="audio/mp3" />
    </audio>
</center>

3 个答案:

答案 0 :(得分:3)

您通常无法在移动设备上自动播放音频或视频文件,这通常受到Android和iOS等操作系统的限制,阻止网站下载大量媒体文件并自动播放。

如果从点击或触摸处理程序中调用此类代码,它可能会起作用,但不是您当前正在执行的方式。

此外,<center>元素已被弃用,您不应再使用它了。

答案 1 :(得分:0)

不确定这是否有帮助,但我这样做了,它对我有用。虽然我没有播放MP3,但我正在通过循环提示用户。

function speak(text) {
var msg = new SpeechSynthesisUtterance();
var voices = speechSynthesis.getVoices();
msg.voice = voices[2];
msg.voiceURI = 'native';
msg.volume = 1;
msg.rate = 1;
msg.pitch = 1;
msg.text = text;
msg.lang = 'en-US';

speechSynthesis.speak(msg);
}

//插入此底部位以调用该函数,它将在手机本机语音中读取您输入的内容,即...在Android上的其余工作尚未尝试过iphone。

说话(&#39;其余&#39);

答案 2 :(得分:-2)

你是否尝试过这样做:

var aud=new Audio(file.mp3);
aud.play();