IOS微信摇一摇声音无法播放的解决办法

 更新时间:2018年05月23日 09:45:49   作者:东都花神  
这篇文章主要为大家详细介绍了IOS微信摇一摇声音无法播放的解决办法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

在IOS中第一次调用play方法播放音频会被阻止,必须得等用户有交互动作,比如touchstart,click后才能正常调用,所以可以在摇一摇之前提醒用户点击一下开始游戏的按钮或者给用户一个弹窗,用户点击的时候播放一个超级短的无声音文件,之后替换src,这样再调用play方法就可以了。

代码如下如:

<!DOCTYPE html>
<html lang="zh">
<head>
 <meta charset="UTF-8" />
 <meta name="viewport" content="width=device-width, initial-scale=1.0" />
 <meta http-equiv="X-UA-Compatible" content="ie=edge" />
 <title>Document</title>
</head>
<body>

 <button>开始游戏</button>

 <audio src="https://daoket.github.io/img/load.mp3" id="audio"></audio>
 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
 <script type="text/javascript">

 $('button').one('touchstart', function () {
  var audio = document.getElementById("audio");
  audio.play();
  audio.setAttribute('src', 'https://daoket.github.io/img/shake.mp3');
  audio.load();
  $(this).text('游戏进行中');
 })

 /**
  * 移动端摇一摇
  * @params devicemotion 提供设备加速度信息
  */
 window.addEventListener('devicemotion', devicemotionHandler, false);

 var x,
  y,
  z,
  last_x,
  last_y,
  last_z,
  last_time = 0,
  SHAKE_SPEED = 4000;
 function devicemotionHandler (evet) {
  var acc = event.accelerationIncludingGravity,
   curTime = new Date().getTime(),
   diffTime = curTime - last_time;

  if (diffTime > 100) {
    last_time = curTime;

    x = acc.x;
    y = acc.y;
    z = acc.z;

    var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000;
    if (speed > SHAKE_SPEED) {
    document.getElementById("audio").play()
    }

    last_x = x;
    last_y = y;
    last_z = z;
  }
 }
 </script>
</body>
</html>

在线查看

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • iOS开发中UIPopoverController的使用详解

    iOS开发中UIPopoverController的使用详解

    这篇文章主要介绍了iOS开发中UIPopoverController的使用,代码基于传统的Objective-C,需要的朋友可以参考下
    2015-11-11
  • iOS将视频录像切成一张张缩略图

    iOS将视频录像切成一张张缩略图

    这篇文章主要为大家详细介绍了iOS将视频录像切成一张张缩略图的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • ios xcode警告与错误的分析总结

    ios xcode警告与错误的分析总结

    这篇文章主要给大家介绍了关于ios xcode警告与错误的相关资料,文中通过示例代码介绍的非常详细,对各位iOS开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 实例讲解如何在iOS应用开发中使用设计模式中的代理模式

    实例讲解如何在iOS应用开发中使用设计模式中的代理模式

    这篇文章主要介绍了实例讲解如何在iOS应用开发中使用设计模式中的代理模式,示例为传统的Objective-C语言代码,需要的朋友可以参考下
    2016-03-03
  • IOS 基本文件操作实例详解

    IOS 基本文件操作实例详解

    这篇文章主要介绍了IOS 基本文件操作实例详解 的相关资料,需要的朋友可以参考下
    2017-06-06
  • IOS绘制动画颜色渐变折线条

    IOS绘制动画颜色渐变折线条

    这篇文章主要介绍了IOS绘制动画颜色渐变折线条的相关资料,需要的朋友可以参考下
    2016-02-02
  • 如何去掉Xcode工程中某种类型的警告

    如何去掉Xcode工程中某种类型的警告

    这篇文章主要给大家介绍了关于如何去掉Xcode工程中某种类型的警告,文中通过示例代码介绍的非常详细,对大家学习或者使用Xcode具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 基于iOS Realm数据库的使用实例详解

    基于iOS Realm数据库的使用实例详解

    下面小编就为大家分享一篇基于iOS Realm数据库的使用实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 详解iOS中按钮点击事件处理方式

    详解iOS中按钮点击事件处理方式

    在iOS开发中,时常会用到按钮,通过按钮的点击来完成界面的跳转等功能。具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-01-01
  • iOS 定制多样式二维码

    iOS 定制多样式二维码

    最常见的二维码功能包括信息获取、网站跳转、电商交易、手机支付等等,其拥有密度小、信息容量大、容错能力强、成本低、制作难度低等优点。在移动开发中,二维码的地位也越来越重要,掌握二维码的基本操作是重要的本领之一。本文将讲解iOS定制二维码的步骤与方法。
    2017-03-03

最新评论