2013年1月30日水曜日

「シュッ」とか「チン」とかのフリー音源集

ボタンを押した時やスワイプ、スライドした時に使える音源集。




AIFF形式/16 bit/44.1khz なファイルが48個提供されている。

カテゴリは3つ。
・beeps  ブザーっぽいものからピアノ、オルガンなど
・slides 「シュッ」とか。スライドした時などに使える。
・taps   ボタンタップ時の音など

どれもUIでの利用に特化していて非常に短い。


面白いのはちょっとしたライブラリ(クラス1個)が用意されていて、これを利用すると簡単にボタンにサウンドを紐付けられる。
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>

@interface UIButton (Sound)

-(void) addSoundTitled: (NSString*) soundfilename forUIControlEvent: (UIControlEvents) controlEvents;

@property (nonatomic, strong) AVAudioPlayer* tapSound;
@property (nonatomic, strong) AVAudioPlayer* releaseSound;

こんな感じで使える。
[myButton addSoundTitled:@"mySound.aif"
  forControlEvents: UIControlEventsTouchUpInside]

脱線するがこのコードではカテゴリでプロパティを定義している。通常だとカテゴリはメンバ変数を追加できないのだが、 objc_setAssociatedObject/objc_getAssociatedObject を使うとインスタンスに任意のオブジェクトを保持しておけてそれを使っている。
-(void) setTapSound:(AVAudioPlayer *)tapSound
{
    objc_setAssociatedObject(self, kTapSoundKey, tapSound, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
-(AVAudioPlayer*) tapSound
{
    return objc_getAssociatedObject(self, kTapSoundKey);
}


- - - -
これはいい。使わせてもらおう。


0 件のコメント:

コメントを投稿