首页 新闻 会员 周边

html 移动端audio的autoplay问题

0
悬赏园豆:100 [已关闭问题] 关闭于 2016-07-06 18:29

先上代码:

var audio = document.createElement("audio");

if (audio != null){

audio.src = "data:audio/mpeg;base64,"+value.voice;//服务器传过来的mp3的JSON数据

  if (audio.paused) { //判读是否播放

  audio.play(); //没有就播放
  }
}

问题:当接收到服务器发过来的消息的时候,自行创建audio标签,然后播放声音,我在做一个html5的web应用,不能够在html中标签创建audio,也就是背景乐相当于。此代码在PC端正常,有声音,但是到了移动端的时候,就没有声音了,我使用了vivo v3MAX ,iphone4s 来测试,都没声音。我想到的可能的原因有两个,一个是我查阅了很多资料,资料显示Android和IOS不支持autoplay的属性,有各种按钮,监听触摸等等的事件方法绕过此限制,但是给用户的体验不好 ,背景乐还要老是让用户触发事件。第二种原因可能是权限的问题,我使用其他app的时候总是手机自动提醒我是不是要给予声音,访问,照相等等的权限,这个提醒可能是系统或者是类似防火墙软件的提示,但是在Html网页中没有提示。

    有没有大神遇到类似问题,或者求解决啊。。。。。

wll77wang的主页 wll77wang | 初学一级 | 园豆:18
提问于:2016-06-06 11:58
< >
分享
所有回答(3)
-1

这个不需要添加到dom里么。求大神解答。

长蘑菇星人 | 园豆:1832 (小虾三级) | 2016-06-06 12:52
0

放在canplay或canplaythorugh事件里面试试。

再者这个节点是要放在dom里面吧。

山野村夫。 | 园豆:204 (菜鸟二级) | 2016-06-06 14:32
0

经过自己测试:

1、HTML创建Audio(autopaly controls):PC----OK

MOBILE----:OK

2、HTML创建Audio(autopaly):PC----OK
-------->总结:moible不支持autoplay
MOBILE----:NO

3、HTML创建Audio(autopaly controls ),Script设置Souce的SRC : :PC----OK
-------->总结:支持动态设置路径(Audio和Source 都可以)
MOBILE----:OK
4、HTML创建Audio(autopaly ),Script设置Souce的SRC : :PC----OK
-------->总结:moible不支持autoplay
MOBILE----:no

5、alert(audio.autoplay):
PC----: 设置时为true;;不设置时为false;
设置autoplay不设置对mobile没影响 参数的boolean值没矛盾就是被屏蔽了
MOBILE----:设置时为true;;不设置时为false;

6、动态创建audio(document.createElement('audio')):PC----OK;
总结:默认audio.autoplay为false 不能自动播放,play()方法也拯救不了MOBILE;
MOBILE----:NO

7、 总结: var audio=document.createElement('audio');
audio.src='aaa.mp3';
window.addEventListener('touchstart', function(){
audio.play();
}, false);
问题解决了;

wll77wang | 园豆:18 (初学一级) | 2016-06-06 14:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册