实现循环调用系统的震动或者单次调用

// 震动

- (void)playVibration

{

    // Register the sound completion callback.

    AudioServicesAddSystemSoundCompletion(kSystemSoundID_Vibrate,

                                          NULL, // uses the main run loop

                                          NULL, // uses kCFRunLoopDefaultMode

                                          SystemSoundFinishedPlayingCallback, // the name of our custom callback function

                                          NULL // for user data, but we don't need to do that in this case, so we just pass NULL

                                          );

    

    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);

}

SystemSoundFinishedPlayingCallback在这里实现震动后的回调
如果是只震动一次。例如聊天消息来了,震动提醒一下

/**

 *  系统铃声播放完成后的回调

 */

void SystemSoundFinishedPlayingCallback(SystemSoundID sound_id, void* user_data)

{

   

 AudioServicesDisposeSystemSoundID(sound_id);

    

}

但如果是循环震动,例如电话响了,一直震动到接为止

/**

 *  系统铃声播放完成后的回调

 */

void SystemSoundFinishedPlayingCallback(SystemSoundID sound_id, void* user_data)

{

    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);


}


但此时也必须添加一个额外的结束振动的方法,需在结束的时候自己调用

//结束震动

- (void)endSystemSoundPlaying

{

    AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);

}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值