iphone app で音楽を再生する。

iphone アプリを作成しようと勉強してます。
そこで、今回は最初ということで簡単なところから。

  • iphone app内で音楽を再生する

まずは、音楽再生に必要なライブラリを追加する必要があります。
やり方は、Frameworkフォルダ上で control + クリックで追加>既存のフレームワークをクリックして、

ここで「AVFoundation」を選択する。これでライブラリを登録できたので、利用する実行ファイルに下記を追加する。

#include <AVFoundation/AVFoundation.h> 

これで、音楽再生に必要なライブラリはそろいました。

ここでいろいろネットで調べて、音楽再生サンプルを見つけました。
これは下記のようなもの。

 NSString *path = [[NSBundle mainBundle] pathForResource:@"hoge" ofType:@"mp3"];  
    NSURL *url = [NSURL fileURLWithPath:path];  
    AVAudioPlayer *audio = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];  
    [audio play]; 

ここで、Resourcesフォルダに"hoge.mp3"をコピーして実行すると音楽が流れる。
まずは感動!!

次にweb上にある試聴ファイルを再生すること。

NSString *path = [[NSBundle mainBundle] pathForResource:@"http://a2.mzstatic.com/us/r1000/053/Music/50/96/51/mzm.hywhfbup.aac.p.m4a" ofType:@"mp3"];  
    NSURL *url = [NSURL fileURLWithPath:path];  
    AVAudioPlayer *audio = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];  
    [audio play]; 

これで実行すると失敗する。おそらく「pathForResource」でリソースとしてNSStringを作成していると思われる。
ここで、またネットサーフィンを行い下記の記事を発見。

http://www.iphonedevsdk.com/forum/iphone-sdk-development/65939-play-audio-file-external-url-avaudioplayer.html

まさに私が探していたもの。

NSURL *url = [NSURL URLWithString:@"http://a2.mzstatic.com/us/r1000/053/Music/50/96/51/mzm.hywhfbup.aac.p.m4a"];
NSData *data = [NSData dataWithContentsOfURL:url];
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithData:data error:nil];
[audioPlayer play]; 

これで再ビルドして実行したら見事ネット上の外部ファイルを再生出来ました。

ios