您的位置:首页 > Web前端 > HTML5

HTML5实现摇一摇的功能(实测后)

2015-01-10 11:14 393 查看
转自:http://blog.csdn.net/david1030/article/details/8229008

利用html5实现类似微信的手机摇一摇功能,并播放音乐。

1、 deviceOrientation:封装了方向传感器数据的事件,可以获取手机静止状态下的方向数据,例如手机所处角度、方位、朝向等。

2、 deviceMotion:封装了运动传感器数据的事件,可以获取手机运动状态下的运动加速度等数据。

不多说直接上代码,

Javascript:

[javascript] view
plaincopy

var SHAKE_THRESHOLD = 3000;

var last_update = 0;

var x = y = z = last_x = last_y = last_z = 0;

function init() {

if (window.DeviceMotionEvent) {

window.addEventListener('devicemotion', deviceMotionHandler, false);

} else {

alert('not support mobile event');

}

}

function deviceMotionHandler(eventData) {

var acceleration = eventData.accelerationIncludingGravity;

var curTime = new Date().getTime();

if ((curTime - last_update) > 100) {

var diffTime = curTime - last_update;

last_update = curTime;

x = acceleration.x;

y = acceleration.y;

z = acceleration.z;

var speed = Math.abs(x + y + z - last_x - last_y - last_z) / diffTime * 10000;

if (speed > SHAKE_THRESHOLD) {

alert("摇动了");

media.setAttribute("src", "http://211.148.5.228:8002/Pages/test/Kalimba.mp3");

media.load();

media.play();

}

last_x = x;

last_y = y;

last_z = z;

}

}

Html:

[html] view
plaincopy

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8" />

<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<title>摇一摇功能</title>

<script type="text/javascript">

//Javascript

</script>

</head>

<body onload="init()">

<p>用力摇一摇你手机</p>

<audio style="display:hiden" id="musicBox" preload="metadata" controls src="http://211.148.5.228:8002/Pages/test/Kalimba.mp3" autoplay="false">

</audio>

</body>

</html>

IOS 测试:Safari 弹框\不播放音乐, Chroma 弹框\不播放音乐,UC弹框\不播放音乐

Andriod 测试:UC弹框\播放音乐,Chroma 弹框\播放音乐,内置浏览器 弹框\播放音乐
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: