前几天做一个移动H5小游戏,其中涉及到播放音频,选择使用了HTML5的<audio> 进行音频的播放,程序写好后测试pc仿iPhone、Android都可以正常播放,然而在iPhone上却没有声音,在网上查阅了一些解决办法,大概是要在.play() 方法之前调用.load().pause(),或者把.play() 放在touch事件中,不过我测试了一下也没有效果,但想着原理应该就是如此,于是就开始本地的疯狂测试,最终得到了亲测有效的解决方案:绑定一个touchstart事件(可以绑给最先点击的元素,只用一次就移除的最佳,绑给touchend理论也可以,不过要click那样的才有效,滑动后才touchend的不起作用。。。),调用.load(),之后在其他方法中调用.paly()就可以顺利的播放声音了。(注:.**() 前是audio元素,示例代码使用原生ES5,方便大家快速套入自己的技术线)。

解决没有声音代码示例:

// 在touchstart中调用load,如果绑给body或document,可以在load后removeEventListener
document.getElementById('shadow').addEventListener('touchstart', function(e) {document.getElementById('audio_1').load();document.getElementById('audio_2').load();touchstartHandle(e);
}, false);// 其他方法中就可以调用play了
document.getElementById('money').addEventListener('touchend', function(e) {document.getElementById('audio_1').play();document.getElementById('audio_2').play();touchendHandle(e);
}, false);

然而声音有了之后,却发现操作频繁时声音放的很慢,违和感特别强,当然这问题肯定难不倒我,毕竟,我可是擅长各种黑魔法······
解决音效和操作不同步代码示例:

<!-- HTML: -->
<audio id="money-audio0" src="//cdn1.***.com/media/a.wav"></audio>
<audio id="money-audio1" src="//cdn1.***.com/media/a.wav"></audio>
<audio id="money-audio2" src="//cdn1.***.com/media/a.wav"></audio>
<audio id="money-audio3" src="//cdn1.***.com/media/a.wav"></audio>
// JS
// 相信机智的小伙伴看到上面的一坨就知道我要拉啥了✿✿ヽ(°▽°)ノ✿
var audio_index = 0,money_audio0 = document.getElementById('money-audio0'),money_audio1 = document.getElementById('money-audio1'),money_audio2 = document.getElementById('money-audio2'),money_audio3 = document.getElementById('money-audio3');
/**
*   也可以直接使用字符串拼接id的方式获取元素,不过这样做每次播放都要
*   重新获取元素,所以可以考虑这种麻烦点的写法
*/
switch (this.audio_index) {case 0:money_audio0.play();break;case 1:money_audio1.play();break;case 2:money_audio2.play();break;case 3:money_audio3.play();break;default: break;
}
audio_index += 1;
if(this.audio_index === 4) audio_index = 0;

上面是我的渣渣操作,专业点的微信预加载代码长这样:

移动H5 iPhone audio没有声音(声音不同步)问题的解决方式相关推荐

  1. H5页面audio多声音解决方法

    移动端H5带背景音乐,之后如又有其他声音声音产生的冲突,解决方法. 在线demo:http://www.hui12.com/nbin/csdn/sound/demo.html <!DOCTYPE ...

  2. iphone设置闹钟音乐_如何在iPhone上更改闹钟声音

    iphone设置闹钟音乐 Khamosh Pathak Khamosh Pathak At some point, the default alarm sound on your iPhone mig ...

  3. 苹果6s照相快门声音设置_苹果屏幕录制怎么设置?iPhone屏幕录制没声音解决方法...

    考虑到很多用户在手机端也有屏幕录制的需求,所以这次就先跟大家分享下iPhone屏幕录制怎么设置.因为苹果是自带有屏幕录制功能的,所以操作较为简单.安卓用户我们下次再分享. 另外,本次还会穿插介绍一些i ...

  4. Unity 声音组件 Audio Source(声源)和Audio Listener(声音接收者)

    Audio Source(声音源,发出声音的东西)可以有多个 Audio Listener(声音接收者)只能有一个 AudioClip  拖入声音片段 Output   默认为AudioListene ...

  5. win10声音设置没有麦克风降噪的解决办法

    win10声音设置没有麦克风降噪的解决办法 首先: 记得启用音频增强: 然后: 搜索 Realtek Audio Console 这里就有相应的设置

  6. 苹果手机没有声音怎么回事?3分钟解决!

    案例:苹果手机听不见声音怎么回事? [朋友们,苹果手机没有声音,不知道我是不是按错了什么.] 如果你的苹果手机没有声音,可能是由于多种原因导致的.苹果手机没有声音怎么回事?看这里,下面是一些苹果手机没 ...

  7. 检查计算机的更新红叉,快速解决win10更新后没有声音小喇叭有个红叉解决教程...

    大家在操作电脑时一定会遇到很多问题,比如说win10更新后没有声音小喇叭有个红叉解决教程就是我们经常会遇到的,小编及身边的朋友也遇到过win10更新后没有声音小喇叭有个红叉解决教程很多次,针对win1 ...

  8. xp计算机找不到音量调节,WinXP电脑没声音且小喇叭不见了如何解决?

    有用户在使用电脑听音乐的时候,突然发现电脑没有声音了,本来以为只是被禁了音,想着调节音量即可解决问题.但是当他想要点开音量小喇叭的时候,发现桌面任务栏通知区域的小喇叭不见了,这该怎么办呢?下面小编以W ...

  9. 【Mac使用技巧】QuickTime Player 如何让声音和视频同步加速播放 from csdner +HurryChen+

    问题:Mac上用QuickTime Player播放视频,想倍速观看,怎么能精确调整速度,并且让声音跟视频画面同步加速? 解决办法: 按住option键,同时点击如图双箭头,每点击一次,速度加快0.1 ...

最新文章

  1. mysql加锁处理分析_MySQL 加锁处理分析 ---非常牛逼
  2. 详细设计说明书读后感_专利申请详细步骤是怎样的,要多久时间
  3. 使用 Amazon Cloud WAN 构建您的全球网络
  4. 《Performance Overhead of Atomic Crosschain Transactions》
  5. boost::callable_traits的remove_varargs_t的测试程序
  6. SQLMap用户手册【超详细】
  7. 探索多媒体开发最新最佳实践(内附资料下载)
  8. 静态注册BroadcastReceiver内部类
  9. SPRING IN ACTION 第4版笔记-第二章-001-用@Autowired\@ComponentScan、@Configuration、@Component实现自动装载bean...
  10. 使用Nginx做图片服务器时候,配置之后图片访问一直是 404问题解决
  11. 【带权并查集 —— 是否说谎】Parity game【POJ 1733】
  12. python string 编解码(encode b64encode)
  13. 集成学习与随机森林练习题
  14. 阿里巴巴矢量图标库批量添加图标
  15. 03-树3 Tree Traversals Again【建树遍历】
  16. ASP.NET程序设计_新闻发布系统
  17. Quartus II 安装
  18. 2021年“上海区块链周”参会随感(二)2021-04-12
  19. [の项目练习]Vue-Cli、API的头条新闻项目
  20. Java Socket服务器端与客户端的编程步骤总结

热门文章

  1. 程序员找媳妇的要求是什么呢?
  2. 一文讲透java弱引用以及使用场景
  3. Python Str字符串 字符串常用方法 定义 创建 拆分 成分判断 大小写调整 格式化 填充 替换 访问 查找
  4. 初学计算机应该学些什么,学电脑要先学什么 学电脑要学习什么知识
  5. unity获取电磁笔压感_电磁笔的分类和特性
  6. 事件日志中出现TKK: 更新 TKK 失败,请检查网络连接,翻译插件用不了
  7. 信数金服:物联网案例之物联网系统如何进行实时决策
  8. PPT文件限制编辑如何取消
  9. Three.js凹凸贴图bumpMap和法线贴图.normalMap
  10. 如何获取微信小店页面路径