cocos2dx iOS 震动

2015年01月23日 14:13 0 点赞 0 评论 更新于 2017-05-08 19:55

在之前开发安卓应用时,我为安卓设备添加过震动功能。今天,我将分享如何在 Cocos2d-x 开发的 iOS 应用中实现震动效果,主要介绍实现思路和具体步骤。

实现原理

在 iOS 开发中,AudioToolbox 框架可以很方便地实现手机震动。和在安卓开发中在 SimpleAudioEngine 里添加震动代码类似,我们也在 SimpleAudioEngine 中添加相关震动代码。

具体步骤

1. 修改头文件 SimpleAudioEngine.h

SimpleAudioEngine.h 头文件中增加震动方法的声明。代码如下:

// 增加震动方法
void vibrate();

2. 修改 ios/ 文件夹下的 SimpleAudioEngine.mm

SimpleAudioEngine.mm 文件中实现震动方法。代码如下:

void SimpleAudioEngine::vibrate()
{
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}

3. 调用震动方法

在需要触发震动的地方,调用 SimpleAudioEngine::sharedEngine()->vibrate(); 即可让手机产生震动效果。

关于 AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) 用于播放系统的震动声音。该方法的震动效果取决于系统设置,如果系统关闭了震动功能,调用此方法将不会有任何效果。

拓展功能

原本我打算编写回调函数来实现类似安卓中指定时间、指定次数的震动功能。但在一位经验丰富的开发者提醒后,我了解到 iOS 在这方面的审核比较严格,应用经常会因为震动功能不符合要求而被打回。所以目前来看,暂时没有必要实现该拓展功能,后续有需要时再进行补充。

以上就是在 Cocos2d-x 开发的 iOS 应用中实现震动功能的基本方法。

作者信息

boke

boke

共发布了 1025 篇文章