MP3などのオーディオを再生させるには AVAudioplayer を使います。簡単な音楽再生アプリを作ってみます。
Objective-C
Xcode 9.4
Xcode 9.4
AVAudioplayer
開発フローはこうなります。なお、以前はAVFoundation.frameworkを設定していましたが必要なくなりました。
ミュージック・ファイルをプロジェクトに追加
右クリックでメニューの「Add Files to “xxx”…」を選択 ファイルを選ぶ
ミュージック・ファイル sample.mp3 をプロジェクトに追加
ViewController.m にオーディオ再生させる処理を記述
- ViewController.h に AVFoundation をインポート
- AudioPlayer の Delegate を追加
- @Property で AVAudioPlayer のインスタンスを作成
- 再生する audio ファイルのパスを取得
- パスから、再生するURLを作成する
- auido を再生するプレイヤーを作成する
- 自分自身をデリゲートに設定
- ボタンが押されると再生・停止の記述を追加
ヘッダーファイルです。propertyにAVAudioPlayerのインスタンスとそれを起動停止させるためのボタンを設定しています。
ViewController.h
1 2 3 4 5 6 7 8 9 10 11 12 |
#import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface ViewController : UIViewController<AVAudioPlayerDelegate> @property(nonatomic) AVAudioPlayer *audioPlayer; @property (weak, nonatomic) IBOutlet UIButton *playButton; - (IBAction)playAudio:(id)sender; @end |
オーディを再生停止させる機能を記述します。
ViewController.m
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSError *error = nil; // 再生する audio ファイルのパスを取得 NSString *path = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"mp3"]; // パスから、再生するURLを作成する NSURL *url = [[NSURL alloc] initFileURLWithPath:path]; // auido を再生するプレイヤーを作成する self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; // エラーが起きたとき if ( error != nil ) { NSLog(@"Error %@", [error localizedDescription]); } // 自分自身をデリゲートに設定 [self.audioPlayer setDelegate:self]; } -(IBAction)playAudio:(id)sender { if ( self.audioPlayer.playing ){ [self.audioPlayer stop]; [self.playButton setTitle:@"Audio Play" forState:UIControlStateNormal]; } else{ [self.audioPlayer play]; [self.playButton setTitle:@"Audio Stop" forState:UIControlStateNormal]; } } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } @end |
audio play, stop のためのボタン設定
Storyboard を開き、ボタンを置きます
そのボタンを選択して右クリック接続ダイアログの
[Touch Up Inside] を ViewController の playAudio と接続します
[New referencing Outlet] を ViewController の playButton と繋ぎます。
ビルド&実行
Xcode を Build して、ボタンを押すとオーディオが再生され、もう一度押すと停止すれば成功です。
尚、Swift の場合はこちらです。
MP3などのミュージック・ファイルを再生させるにはどうするのか? AVAudioplayer は色々と設定ができますが、まず簡単な音楽再生ア...
AVAudioPlayer – AVFoundation | Apple Developer Documentation