【iPhoneアプリ開発】初心者だけどボタンを押して音楽を再生するプログラムを組んでみた。

2013年10月26日土曜日

がんばってやってみた

t f B! P L
5年ほど前までC言語プログラマーをしていました。 だからと言ってプログラムの何がわかるかと言われるとなんとなくやり方を知っているくらいなので何も知らないに近いです。
趣味で音楽再生アプリを作りたいと思いドットインストールさんで基本的な部分を学び
「iPhoneアプリ開発 音楽再生」で検索してコードを検索コピペしてビルドすれば簡単にできるんじゃないかと思っていたらだいぶ苦労しました。

短い曲をループ再生させたかったのでAVFoundationフレームワークのAVAudioPlayerを使うと良いらしいということはわかった。音楽ファイル(mp3)を用意してコピペしたソースの音楽ファイル名を変えてビルドしても成功しても音がならない。

やりたいだけはこれだけなんですけど。。。
ボタンを押す→再生

環境はこんなかんじです。
MacOS X10.9
Xcode5.0.1
2年前に購入したMacBookProだったのでOSが古いのがいけないのかなと思ったのですがちょうどOS X Mavericksが無料で提供されたのでOSのせいではないなと。

ドットインストールのiPhoneアプリ開発入門の♯13、♯14を見ればボタンの作り方はわかると思います。






①新規プロジェクト作成時にAVFoundation.frameworkを追加する。
②Main.storyboardにボタンを作る。
③ViewController.hにコードを書く。
④ViewController.mにコードを書く。
⑤プロジェクトに音楽ファイルを追加する。
⑥ビルドする。

いろいろやってみて3日ほどかかって何とか音を鳴らすことが出来ました。
initWithContentsOfURLあたりの処理がいけなかったのかもしれませんがよくわかっていません。

ViewController.h

#import <UIKit/UIKit.h>
#include <AVFoundation/AVFoundation.h>//フレームワークを宣言

@interface ViewController : UIViewController
{
    IBOutlet AVAudioPlayer *audio;//たぶん使う変数の宣言
}
- (IBAction)button:(id)sender;//ボタンの宣言

@end

ViewController.m
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)button:(id)sender {

    NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];//音楽ファイルの設定
//下の記述に変えたら再生することが出来ました。
    audio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil];

    audio.numberOfLoops = -1;//無限ループ
    [audio play];}//再生する
@end

なんとかこれで出来ました。
ビルド中にエラーが出る場合は1行ずつビルドしていくとどこでつまずいているかわかるかもしれません。

QooQ