需求:利用html5实现类似微信的手机摇一摇功能,并实现微博转发
难点:
1.监控摇动状态
2.播放摇动后音频
难点一,通过html5的DeviceMotionEvent实现,核心代码如下
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("摇动了");
}
last_x = x;
last_y = y;
last_z = z;
}
难点二:代码
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) {
media.setAttribute("src","http://192.168.1.106/weixin_yaoyiyao.mp3");
media.load();
media.play();
}
last_x = x;
last_y = y;
last_z = z;
}
}
<audio style="display:hide" id="musicBox" preload="metadata" controls
src="http://192.168.1.106/weixin_yaoyiyao.mp3"
autoplay="false"
>
</audio>
此两种方式为目前唯一方式
但只能适用少数浏览器
ios平台,safari,可以监控摇动,但无法通过js直接播放音频
android平台,android os 自带浏览器无法监控摇动,但是第三方浏览器,opera,chrome均能监控摇动,也可以通过js直接播放音频
总之目前,用手机实现摇一摇功能,不能完全满足要求
分享到:
相关推荐
通过HTML实现手机摇一摇的简单功能,并通过上传服务器实现手机摇一摇功能
在提供的压缩包文件中,可能包含了一个简单的HTML文件和JavaScript文件,展示了如何利用HTML5的Device Orientation API实现摇一摇功能。代码中可能包含了一些用于调试或测试的额外代码,使用者需要根据实际需求进行...
2. **Audio**:HTML5的Audio API可以播放、暂停和控制音频,为摇一摇功能增加声音效果,提升用户体验。 3. **WebSocket**:为了实现实时通信,HTML5的WebSocket协议可能被用于建立持久的双向连接,这样用户在摇动...
在提供的"shake"文件中,可能包含了实现摇一摇功能的具体代码,包括HTML结构、CSS样式和JavaScript逻辑。JavaScript部分通常会包含上述步骤中的关键代码,例如添加事件监听器、解析设备运动数据以及执行摇一摇后的...
1. **HTML5 API**:H5提供了多种API,如DeviceOrientation事件,可以检测设备的移动和倾斜,这对于实现摇一摇功能至关重要。我们需要监听设备的加速度和陀螺仪数据,来判断用户是否在摇动手机。 2. **JavaScript...
在模拟摇一摇功能时,我们需要监听设备的运动状态变化,通常通过`DeviceMotionEvent`事件来实现。当设备被摇动时,加速度值会发生显著变化,我们可以通过检测这些变化来判断用户是否在摇动设备。 2. **JavaScript...
实现HTML5手机摇一摇功能的关键在于分析DeviceMotion事件中的加速度数据。当用户摇动手机时,加速度值会在三个轴上快速变化。为了准确判断用户是否在摇动手机,开发者需要设定一定的阈值,并记录之前的数据以计算...
通过上述步骤,我们可以利用HTML5提供的DeviceMotionEvent API轻松实现摇一摇功能。这项技术不仅可以提升用户体验,还能为应用程序增添趣味性。未来,随着硬件性能的进一步提升和技术的发展,摇一摇功能的应用场景将...
基于html5-DeviceOrientation-实现微信摇一摇功能.doc
总结来说,"大话摇骰子"是一个利用HTML5技术和JavaScript实现的在线小游戏。它通过Canvas绘制骰子,用JavaScript处理游戏逻辑,提供公平的随机数生成和有趣的互动元素,旨在为玩家带来真实而富有挑战性的掷骰子体验...
HTML5手机微信摇一摇游戏代码是一个利用HTML5技术实现的互动游戏,旨在模拟微信的摇一摇功能。这个游戏的核心是通过JavaScript库jQuery 1.11.1.min.js来处理用户交互和动画效果,使得在手机上玩时能够获得流畅的体验...
4. `wechat-divination`:可能是一个实现摇一摇功能的代码模块,可能包含了处理DeviceMotionEvent和DeviceOrientation事件的代码。 5. `hamburger-button`:可能是一个实现汉堡菜单按钮的代码或样式,常见于移动设备...
这些API是实现摇一摇游戏的关键,它们能捕捉到手机在三维空间中的运动状态。 3. 微信JSSDK:微信提供的JavaScript SDK允许开发者在微信内置浏览器内调用微信的服务,如分享、支付、获取用户信息等。在这个场景下,...
在摇一摇功能中,前端JS代码会监听设备的运动事件,当检测到特定的运动模式(比如快速水平或垂直移动)时,会触发摇一摇事件,并通过Ajax或WebSocket将这一事件发送到服务器。 在"摇一摇demo"这个文件中,很可能...
经常我们玩微信都会用到查到附近的人,都是在app上实现手机摇一摇的功能。现在,我们将此技术搬移到手机web上,供大家学习,主要是用到HTML5的重要特性就是
**摇一摇功能的实现:** 摇一摇功能是通过PhoneGap的加速计API来检测设备的运动状态。加速计API可以获取设备在三个轴(X、Y、Z)上的加速度值。当设备被摇动时,这些值会发生显著变化。开发者需要编写JavaScript代码...
在本案例中,“HTML5带音乐手机摇一摇抽奖代码”是一个利用HTML5特性构建的互动抽奖应用,尤其适用于移动端。这个应用通过模拟“摇一摇”动作来触发抽奖事件,并配合背景音乐,为用户带来更为生动有趣的体验。 首先...
可能还会有按钮或提示,让用户知道如何启动摇一摇功能。 2. **CSS样式**:CSS用于美化界面,可能包括背景图片、动画效果等,以增强用户体验。例如,摇动时可能会有动态效果,如图片抖动、文字滚动等。 3. **...
微信后摇一摇H5实现代码是利用HTML5、JavaScript以及可能的Web Audio API来创建一个功能,模拟微信中的“摇一摇”交互体验。在微信应用中,“摇一摇”是一个流行的功能,用户可以通过摇动手机触发特定的事件,如参与...