cocos lua-lua中怎么用代码控制手机开启和关闭游戏震动功能

iOS实现手机的连续震动和停止震动的代码(拷如工程就能用) - CSDN博客
iOS实现手机的连续震动和停止震动的代码(拷如工程就能用)
最近在做一个类似手机来电一样的让手机无线震动的功能。苹果官方给出的接口很简单总结起来就两步:
1.往项目中导入AudiToolbox.framework框架
2.就一句代码:
AudioServicesPlaySystemSound (kSystemSoundID_Vibrate);
可以实现震动,但是就那么以下,我试了使用NStimer来实现不停的震动,可以实现,但是要暂停下来就麻烦了。
在网上搜了些资料,虽然说出了原理,但是具体的实现代码还是有点让人看不懂。以下是我自己总结的写出来的Demo代码,思路清晰简单,而且拷入工程就能用,不罗嗦直接上代码:
ViewController.m
连续震动示例代码
Created by vincent on 10/9/15.
Copyright © 2015 Mipow. All rights reserved.
#import &ViewController.h&
//记得导入这个框架
#import &AVFoundation/AVFoundation.h&
@interface ViewController ()
SystemSoundID
NSTimer *shakeT
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//创建震动开始按钮
UIButton *startBtn_c=[[UIButton alloc]initWithFrame:CGRectMake(180, 200, 100, 44)];
startBtn_c.backgroundColor=[UIColor blueColor];
[startBtn_c setTitle:@&开始-C& forState:UIControlStateNormal];
[startBtn_c addTarget:self action:@selector(startButton_cClickedAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:startBtn_c];
//创建震动暂停按钮
UIButton *stopBtn_c=[[UIButton alloc]initWithFrame:CGRectMake(40, 200, 100, 44)];
stopBtn_c.backgroundColor=[UIColor redColor];
[stopBtn_c setTitle:@&暂停-C& forState:UIControlStateNormal];
[stopBtn_c addTarget:self action:@selector(stopButton_cClickedAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:stopBtn_c];
// Do any additional setup after loading the view, typically from a nib.
-(void)stopButton_cClickedAction{
NSLog(@&stop button action&);
//[audioPlayer stop];
AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);
[self stopAlertSoundWithSoundID:sound];
-(void)stopAlertSoundWithSoundID:(SystemSoundID)sound {
AudioServicesDisposeSystemSoundID(kSystemSoundID_Vibrate);
-(void)startButton_cClickedAction{
NSLog(@&start button action&);
//如果你想震动的提示播放音乐的话就在下面填入你的音乐文件
NSString *path = [[NSBundle mainBundle] pathForResource:@&marbach& ofType:@&mp3&];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)[NSURL fileURLWithPath:path], &sound);
AudioServicesAddSystemSoundCompletion(kSystemSoundID_Vibrate, NULL, NULL, soundCompleteCallback, NULL);
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(sound);
void soundCompleteCallback(SystemSoundID sound,void * clientData) {
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
AudioServicesPlaySystemSound(sound);
extern OSStatus
AudioServicesAddSystemSoundCompletion(
SystemSoundID
inSystemSoundID,
CFRunLoopRef
inRunLoop,
CFStringRef
inRunLoopMode,
AudioServicesSystemSoundCompletionProc
inCompletionRoutine,
inClientData)
__OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_2_0);
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
以上代码能实现收放自如,想震动的时候不停的震动,想暂停的时候能立即停下!
本文已收录于以下专栏:
相关文章推荐
//  ViewController.m
//  进度显示
//  Created by beevle on 16/1/12.
//  Copyright © 2016...
首先要导入 
一行代码搞定:
    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
在项目中使用AudioServicesPlaySystemSound 这个接口来进行声音和震动的播放, 当然需要在工程中加入AudioToolBox.framework
我们可以写一个文件来封装声音...
添加系统框架:
#import AudioToolbox/AudioToolbox.h&
调用震动代码:
AudioServicesPlaySystemSound(kSystemSoundI...
void AudioServicesStopSystemSound(int);
void AudioServi...
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:
Markdown和扩展Markdown简洁的语法
代码块高亮
图片链接和...
在项目中遇到这样的问题:边响音乐边震动,音乐结束则结束震动。
首先需要引入#import 头文件,
在需要播放音乐的地方添加:
    AudioServicesAddSystemSound...
导入框架:
@interface MsgPlaySound : NSObject
SystemSoundID soun...
1.iPhone尺寸规格
//  ViewController.m
//  autolayout070801
//  Created by tianshangrenjian on 15/7/...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)本帖子已过去太久远了,不再提供回复功能。Pages: 1/3
主题 : 怎么调用手机震动
级别: 骑士
可可豆: 2099 CB
威望: 2099 点
在线时间: 201(时)
发自: Web Page
来源于&&分类
怎么调用手机震动&&&
点一下按钮&&手机震动一下&&怎么实现呢?
级别: 骑士
UID: 46714
可可豆: 2245 CB
威望: 2231 点
在线时间: 531(时)
发自: Web Page
使用AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)调用手机震动
生命中,不断地有人离开或进入。于是,看见的,看不见的;记住的,遗忘了。生命中,不断地有得到和失落。于是,看不见的,看见了;遗忘的,记住了。然而,看不见的,是不是就等于不存在?记住的,是不是永远不会消失。
级别: 骑士
可可豆: 2099 CB
威望: 2099 点
在线时间: 201(时)
发自: Web Page
#import &AudioToolbox/AudioToolbox.h&#import &UIKit/UIKit.h&&& - (void)vibrate&& {&&&& &&AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);&& }
级别: 骑士
可可豆: 2254 CB
威望: 2254 点
在线时间: 815(时)
发自: Web Page
不错,学习了!~
级别: 骑士
可可豆: 1860 CB
威望: 1840 点
在线时间: 308(时)
发自: Web Page
这个可以有
级别: 新手上路
可可豆: 60 CB
威望: 60 点
在线时间: 127(时)
发自: Web Page
这个真的有
级别: 侠客
UID: 139020
可可豆: 176 CB
威望: 174 点
在线时间: 57(时)
发自: Web Page
mark&& 学习
级别: 新手上路
可可豆: 230 CB
威望: 230 点
在线时间: 97(时)
发自: Web Page
不错,拿走了
级别: 新手上路
可可豆: 136 CB
威望: 136 点
在线时间: 73(时)
发自: Web Page
好东东学习一下
可可豆: * CB
威望: * 点
在线时间: (时)
注册时间: *
最后登录: *
发自: Web Page
刚好用到,谢谢了
Pages: 1/3
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版cocos2dx(8)
参考链接: &http://blog.csdn.net/u/article/details/
1.首先你需要建一个Coco2dx的项目,确保当前项目能打包到Android手机上,并没有错误
2.建立一个Vibrator的类
#pragma once
#ifndef _Vibrator_h_
#define _Vibrator_h_
#include &stdio.h&
#include &cocos2d.h&
USING_NS_CC;
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include &jni.h&
#include &android/log.h&
#include &platform/android/jni/JniHelper.h&
CLASS_NAME &org/cocos2dx/lib/Cocos2dxHelper&
android手机震动类
author : cui
class Vibrator
//震动时间 @param time
static void vibrate(int time);
//取消震动
static void cancelVibrate();
#include &Vibrator.h&
void Vibrator::vibrate(int time)
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
JniMethodI
if (JniHelper::getStaticMethodInfo(t, CLASS_NAME, &vibrate&, &(I)V&))
t.env-&CallStaticVoidMethod(t.classID, t.methodID, time);
t.env-&DeleteLocalRef(t.classID);
void Vibrator::cancelVibrate()
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
JniMethodI
if (JniHelper::getStaticMethodInfo(t, CLASS_NAME, &cancelVibrate&, &()V&))
t.env-&CallStaticVoidMethod(t.classID, t.methodID);
t.env-&DeleteLocalRef(t.classID);
3.在AndroidManifest.xml中添加权限
&uses-permissionandroid:name=&android.permission.VIBRATE&/&
4:虽然上面的这些都完成了,但是我们还需要在java中去调用这些方法,那么我们应该怎么去调用呢?
(1)我们打开项目下cocos2d\cocos\platform\android\java\src\org\cocos2dx\lib文件下的Cocos2dxHelper.java文件,在这类中我们需要添加以下代码:
import android.app.S
import android.os.V
public static void vibrate(int vibrateTime) {
Vibrator vib = (Vibrator) sActivity.getSystemService(Service.VIBRATOR_SERVICE);
vib.vibrate(vibrateTime);
public static void cancelVibrate() {
Vibrator vib = (Vibrator) sActivity.getSystemService(Service.VIBRATOR_SERVICE);
vib.cancel();
5.把该项目进行编译,然后用手机调试,恭喜你,到这一步,证明你已经成功了。
使用方法如下:
Vibrator::vibrate(500);震动500ms
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5004次
排名:千里之外
原创:10篇
(1)(3)(4)(4)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'}

我要回帖

更多关于 cocos2dx lua 控制台 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信