NSURL *url = [[NSURL alloc]initWithString:@"http://localhost/social-alarm1/musics/sampleMusic.mp3"];
AVPlayer *player = [[AVPlayer alloc]initWithURL:url];
[player play];
*AVFoundation/AVFoundation.hは.hファイルで読み込みをしています。
これをこうすると僕の場合は解決しました。
.mファイル
@interface ViewController () {
AVPlayer *player;
}
@end
@implementation ViewController
- (void)viewDidLoad {/*省略。何もいじってません*/}
- (void)didReceiveMemoryWarning {/*省略。何もいじってません*/}
- (IBAction)startMusic:(id)sender {
NSURL *url = [[NSURL alloc]initWithString:@"http://localhost/social-alarm1/musics/sampleMusic.mp3"];
player = [[AVPlayer alloc]initWithURL:url];
[player play];
}
@end
言葉で書くとするなら、「AVPlayerのインスタンスを.mファイルの最初のinterfaceで書くとなぜかうまくいく」ですね
ARCがplayerインスタンスを開放してしまうからが原因ですね。下のはメンバ変数にしてスコープ(playerインスタンスの生存範囲)が変わったので大丈夫になってます。
ReplyDelete斉藤さん、コメントありがとうございます!
ReplyDeleteまた、返信遅くなってしまって申し訳ありません。完全に僕の過失です。
なるほど、そうなのですね。僕はxcode4から始めたのでARCはそこまで気にしてなかったのですが、それが今回は仇となったようですね。
初めてのコメントありがとうございます!