2013年1月28日月曜日

009-BGMの再生(AVAudioPlayer)

NO MUSIC NO LIFE
方々へ

1969を忘れない
方々へ

今回はアプリ内でBGMや効果音を使う方法を紹介します。

学生は授業中
会社員は打ち合わせ中
議員さんは国会中

音が鳴るアプリを使えなくなるし、
電池の消費も増えるので、個人的には音は必要ないかなと思っていたのですが。。。

地味にユーザー様から、BGMが欲しいというご要望が多かったので、
実装してみました。


■生成
//BGM用のAVAudioPlayerを生成します
NSString *sBgmFilePath = [[NSBundle mainBundle] pathForResource:@"CrazyLove" ofType:@"m4a"];
//ファイルパスから、URLを作成
NSURL *sBgmFileUrl = [NSURL fileURLWithPath:sBgmFilePath];
//URLを読み込みオーディオのインスタンスを生成
AVAudioPlayer *mBgmSound = [[AVAudioPlayer alloc] initWithContentsOfURL:sBgmFileUrl error:nil];
//音楽をLOOPさせる
[mBgmSound setNumberOfLoops:-1];
//すぐに再生できるように準備
[bgmSound prepareToPlay];




NSString *sBgmFilePath = [[NSBundle mainBundlepathForResource:@"CrazyLove" ofType:@"m4a"];
処理は音楽ファイルのパスとファイル形式を指定しています。
今回の音楽のサンプルは"CrazyLove"という音楽ファイル、拡張子はm4a形式です。

今回の音楽のサンプルはm4a形式の音楽ファイルとなっていますが、
wavやcafも使えるので、地味に便利です。

音楽ファイルは画像ファイルと同じようにResourcesフォルダに格納してください。



[mBgmSound setNumberOfLoops:-1];
曲が終わったら、最初に戻りもう一度再生する設定をしています。

[mBgmSound setNumberOfLoops:2];
こうすると、2回ループする設定になります。

[mBgmSound setCurrentTime:3.0f];
曲の開始時間を設定します。


[bgmSound prepareToPlay];
再生する準備をする命令です。
音楽ファイルをあらかじめバッファリングして、
再生の命令ともに音楽が始まるようにしています。

■Music
//BGM用の再生
[bgmSound play];
//BGM用の停止
[bgmSound stop];


playで曲をかけて
stopで停止
あと、pauseとかもあったと思います。


■総論
BGMの実装事態はそんなに難しくないですね。

大ヒットしたなめこのゲームはなめこを採取するときの音が
良くてヒットしたとか、ヲインPOPもかわいい効果音がよくて
ヒットしたとかで。。。
なんやかんやで音は大事ですね。

とかいいつつも、カメラの音を消すアプリは大ヒットしてますね。。。

0 件のコメント:

コメントを投稿