音乐的播放

http://www.cnblogs.com/wendingding/p/3900734.html   

http://blog.csdn.net/ztp800201/article/details/9415577

iOS中的AVAudioPlayer不支持边下边播,所以只能下载到本地再播放。

方法:

[cpp] view plaincopyprint?

NSString *urlStr = @"http://…………xxx.mp3";

NSURL *url = [[NSURL alloc]initWithString:urlStr];

NSData * audioData = [NSData dataWithContentsOfURL:url];

//将数据保存到本地指定位置

NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

NSString *filePath = [NSString stringWithFormat:@"%@/%@.mp3", docDirPath , @"temp"];

[audioData writeToFile:filePath atomically:YES];

//播放本地音乐

NSURL *fileURL = [NSURL fileURLWithPath:filePath];

player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];

[player play];

注意 代码中的player是类的私有变量,因为在ARC模式下如果定义局部变量,出了作用域后对象会被销毁。 这个问题也是纠结了好久才搞明白。

当然也可以不保存文件,只是将player的构造方法改为用data实例化即可。

你可能感兴趣的:(音乐的播放)