2012年3月26日月曜日

音楽の再生と効果音の再生 objective-c AVFoundation

今日はボタンを押したら音楽が繰り返しながれる、
もう一回ボタンを押したら音楽がストップするというアプリケーションを作ってみたいと思います。

objective-cで音楽を入れるのは、
どうやら二種類あるみたいで、
ある程度音楽が長いBGMとして利用する方法と、
30秒以内の短い音(効果音)として利用する方法
がありました。

■BGMの方からいきたいと思います!

1、Frameworksに既存のワークフレームを追加

AVFoundation.framework
を追加します。


2、.hファイルに以下を追加

#import

→追加したフレームワークにインポート

@property(nonatomic,retain)AVAudioPlayer *audio;

→プロパティを追加



3、.mファイルでBGMのロード

AVAudioPlayer* audio;
NSString* path = [[NSBundle mainBundle]
pathForResource:@"bgm1" ofType:@"mp3"]; //bgm1.mp3ってファイルを読み込んでます。
NSURL* url = [NSURL fileURLWithPath:path];
audio = [[AVAudioPlayer alloc]
initWithContentsOfURL:url error:nil];
audio.numberOfLoops = -1; //ループする回数の指定。(-1: 無限、0:
1回、1:
2回)


●音楽の再生と、一時停止、停止は、以下のようにして出来ます。
[audio play]
[audio pause]
[audio stop]



4、音楽ファイルをリソースの中に追加

忘れてました、、
resorceフォルダの中に音楽データを入れます。


■次は効果音のほうです!

1、Frameworksに既存のワークフレームを追加

AVFoundation.framework
を追加します。


2、.hファイルに以下を追加

#import

→追加したフレームワークにインポート



3、.mファイルで効果音のロード

SystemSoundID mSound = 0;
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundUrl = CFBundleCopyResourceURL(
mainBundle, CFSTR("se1"), CFSTR("wav"), NULL );
AudioServicesCreateSystemSoundID( soundURL, &mSound );


●音楽の再生はこんな感じ
AudioServicesPlaySystemSound( mSound );


音楽の名前にIDをつけて呼び出すって感じですね。


0 件のコメント:

コメントを投稿