Archive for category iPhone
iPhone 2.2.1 JailBreak on OSX10.5.6
Posted by takatronix in Mac, iPhone on 2009/02/04
[iPhone]AVFoundationを使ったmp3再生
Posted by takatronix in Mac, Programming, iPhone on 2009/02/03
iPhoneでの音声の再生方法にはいろいろあって一番メジャーなのは
AudioQueueを使用する方法らしいのだが、
これみると結構大変。
調べるとiPhone 2.2からAVFoundationを使ってもっと簡単に再生できることがわかったのでやってみたので手順を記す。
フレームワークにAVFoundationを追加する。
Frameworksを右クリックして「追加」->「既存のフレームワーク」を選択

デフォルトだと、AVFoundation.frameworkのある場所は2.0のフレームワーク場所を指していて見つからないから、
/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulatior2.2sdk/System/Library/Frameworks
から選択すること。(ここに嵌ったw)
コントローラのヘッダにを追加
#import <AVFoundation/AVFoundation.h>
コントローラオブジェクトへオブジェクトを追加
AVAudioPlayer* m_sound;
初期化
リソースからfreeek.mp3ファイルをロードする場合のサンプル
あらかじめ、リソースにmp3ファイルを追加しておくこと。
NSString* a_file_path = [[NSBundle mainBundle] pathForResource:@"freeek" ofType:@"mp3"];
NSURL* a_file_url = [NSURL fileURLWithPath:a_file_path];
if( a_file_url ){
NSError* a_error = nil;
m_sound = [[AVAudioPlayer alloc] initWithContentsOfURL:a_file_url error:&amp;amp;amp;amp;amp;a_error];
}
再生したい場所でplayメッセージを送る。非同期で再生される。
[m_sound play]
tAkatronixおすすめのiPhone開発本
ソフトバンククリエイティブ
売り上げランキング: 84906
ソフトバンククリエイティブ
売り上げランキング: 4163
リックテレコム
売り上げランキング: 3089
ソフトバンククリエイティブ
売り上げランキング: 22615
[iPhone]タイマー処理 NSTimerの使い方
Posted by takatronix in Mac, Programming, iPhone on 2009/02/03
iPhoneでタイマー処理の書き方
初期化処理
この例だと1/100秒毎にくりかす
NSTimer* timer; timer = [NSTimer scheduledTimerWithTimeInterval:0.01 // 発生間隔(秒) target:self // 送信先オブジェクト selector:@selector(onTimer:) // コールバック関数 userInfo:nil // パラメータ repeats:YES]; // 繰り返し
コールバック関数のハンドラ
-(void)onTimer:(NSTimer*)timer
{
NSLog(@"onTimer\n");
}
tAkatronixおすすめのiPhone開発本
ソフトバンククリエイティブ
売り上げランキング: 84906
ソフトバンククリエイティブ
売り上げランキング: 4163
リックテレコム
売り上げランキング: 3089
ソフトバンククリエイティブ
売り上げランキング: 22615
[iPhone]加速度センサの使い方
Posted by takatronix in iPhone on 2009/01/31
初期化の処理
viewDidLoadにいれたけどどこでもよさげ
更新周期は0.01秒
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:0.01]; // アップデートする周期 [[UIAccelerometer sharedAccelerometer] setDelegate:self];
初期化すると次のハンドラにさっきので指定した周期でコールされる
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
シェイクの検出
X,Y,Zのセンサのうちどれかが2.0G以上ならシェイクされたと判断する
if(fabsf(acceleration.x) > 2.0 || fabsf(acceleration.y) > 2.0 || fabsf(acceleration.z) > 2.0){
落下の検出
落下するとき、物質の質量は0になるので、X,Y,Z軸すべてが0の時とやればいいのだが、実際のセンサの値は0にはならないようでいろいろためしたけど0.2G以下になったら検出というのが一番しっくりきた
if(fabsf(acceleration.x) < 0.2 &amp;&amp; fabsf(acceleration.y) < 0.2 &amp;&amp; fabs(acceleration.z) < 0.2) {
if(time(NULL) - tmEvent <= 1)
return;
tmEvent = time(NULL);
}
加速度センサのコールバックは初期化した時のパラメータでがんがんよばれるので、最後に落下を検出したときから1秒以上たっていたら、、という処理も追加したらいい感じになった。
tAkatronixおすすめのiPhone開発本
ソフトバンククリエイティブ
売り上げランキング: 84906
ソフトバンククリエイティブ
売り上げランキング: 4163
リックテレコム
売り上げランキング: 3089
ソフトバンククリエイティブ
売り上げランキング: 22615





FREEEK iPhone App 2.0 on iTunes App Store!!
[iPhone]インストールしている脱獄アプリ