エンターテインメントから工業利用まで、プロジェクションマッピングの活用・運用をお考えの方へ
情報表示用のデジタルサイネージから、センサーを利用したインタラクティブ要素などをお考えの方へ
VRHMD用コンテンツからプラットフォームを利用した360度ムービーを活用したPRをお考えの方へ
Webサイトのボタンに効果音を付与するのは、アクセシビリティ上あまり好ましくないと考えられる場合もありますが、
ゲーム等のアプリであれば、それは演出の一つとして重要になってくるのではないでしょうか。
そこで、iOSアプリ内のボタンで音を鳴らしたいと思ったのですが、
これまでObjective-Cで音データを扱ったことがなかったので、今回はその方法について調べていくことにしました。
まず、音データを扱うためのフレームワークをプロジェクトに追加します。
Xcodeのプロジェクトを開いた状態で、
左上のプロジェクト名→TARGETSの下のプロジェクト名→General
の順に選択して、画面を下までスクロールすると、「Linked Framework and Libraries」の画面に来ると思います。
続いて、カバンのアイコンの下にある「+」をクリックすると以下のような画面になります。
そこで、今回追加するフレームワーク「AudioToolbox.framework」を選択します。
「Linked Framework and Libraries」と左のframeworksフォルダ内にフレームワークが追加されました!
画面左のフォルダ構造が表示されている部分で、右クリックし「New Group」を選択すると新しいフォルダが作成出来ます。
今回はフォルダ名を「Sound」としました。
続けて必要な効果音ファイルをフォルダへドラッグ&ドロップします。
以下のような画面になりましたら、一番上の項目にチェックをすると、元データをコピーしてプロジェクト内へアップロードできます。
今回アップしたデータは「btn_1.mp3」という名前にしました。
Viewcontroller.h内で、フレームワークをインポートします。
#import <AudioToolbox/AudioToolbox.h>
続いて、効果音のインスタンス宣言を行います。今回は、「sound_1」という名前で宣言しました。
//効果音 SystemSoundID sound_1;
宣言が出来ましたら、- (void)viewDidLoad内で、効果音ファイルを読み込みます。
- (void)viewDidLoad { [super viewDidLoad]; //効果音ファイル読み込み NSString *path = [[NSBundle mainBundle] pathForResource:@"btn_1" ofType:@"mp3"]; NSURL *url = [NSURL fileURLWithPath:path]; AudioServicesCreateSystemSoundID((CFURLRef)CFBridgingRetain(url), &sound_1); }
最後に、効果音を鳴らしたい場所で以下のように記述を行います。
今回はボタンをタップした際に鳴るように記述、ボタン名は「soundBtn」と仮定しました。
- (IBAction)soundBtn:(id)sender { AudioServicesPlaySystemSound(sound_1); }
以上で完了です!
やはりアプリですから、ボタンに音は付けたいですよね!
イベントプロダクション・グラフィックデザイナーを経て、2010年3月に株式会社アイデアクラウドを設立。近年、WEBから得た技術をベースに、プロジェクションマッピング事業をはじめとした先端事業をスタート。