ITとiPhoneと俺

iPhoneで連続してバイブ(kSystemSoundID_Vibrate)させる方法

Posted on: 2012/02/02

最近iOS開発についての勉強を再開していたのですが、
飲み会の席でどのようにやるんだろみたいな話になったので調べてみた。
 
 




新規プロジェクト作成で「Single View Application」で作ったプロジェクトに、Buttonを二つ貼付けただけ。
iOSのバージョンは5.0、「Use Automatic Reference Counting 」をチェックして作成。
AudioToolbox.framework を追加するのを忘れずに。
 
 
#ViewController.h

//
// ViewController.h
// vibrate
//
// Created by on 12/01/31.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import

@interface ViewController : UIViewController
{
BOOL flag;
}
– (IBAction)buttonTap:(id)sender;
– (IBAction)stop:(id)sender;

@end

 
 

#ViewController.m

//
// ViewController.m
// vibrate
//
// Created by on 12/01/31.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//

#import
#import “ViewController.h”

@implementation ViewController

#pragma mark AudioService callback function prototypes
void MyAudioServicesSystemSoundCompletionProc (
SystemSoundID ssID,
void *clientData
);

#pragma mark AudioService callback function implementation
void MyAudioServicesSystemSoundCompletionProc (
SystemSoundID ssID,
void *clientData
) {
if (((__bridge ViewController *)clientData)->flag)
{
NSTimeInterval elapsedTime = 1; // 1秒間隔
[NSThread sleepForTimeInterval:(NSTimeInterval)elapsedTime];

// バイブ
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
else
{
AudioServicesRemoveSystemSoundCompletion(kSystemSoundID_Vibrate);
}
}

– (IBAction)buttonTap:(id)sender
{
flag = YES;
AudioServicesAddSystemSoundCompletion (
kSystemSoundID_Vibrate,
NULL,
NULL,
MyAudioServicesSystemSoundCompletionProc,
(__bridge void *) self
);

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}

– (IBAction)stop:(id)sender
{
flag = NO;
}

@end

 
 
ソースコードをそのまま貼付けるとめちゃみづらいのでなんか方法を考えなければ。
 
 
(参考ページ)
iPhoneバイブの制御

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。