码迷,mamicode.com
首页 > 其他好文 > 详细

AVAudioplayer时error解决 创建失败 ERror creating player: Error Domain=NSOSStatusErrorDomain Code=2003334207 "(null)"

时间:2016-07-16 22:03:45      阅读:3334      评论:0      收藏:0      [点我收藏+]

标签:

AVAudioplayer 有两个初始化方法:

1、[[AVAudioPlayer alloc] initWithData:musicData error&e];
2、[[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&error];
第一种是使用将音频文件的data文件初始化,但是data必须是一个完整的文件。
第二种是从url获取,但是这里的url是本地的file URL。
 
 所以AVAudioplayer无法直接从网络url上获取音频文件,所以可以用:
data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://.../file.mp3"]];
将网络上音频down下来,再用initWithData初始化player。但是这样down下来的文件有时是不完整的,所以出现创建失败问题,出现:
Error Domain=NSOSStatusErrorDomain Code=1954115647
解决这个问题的方法就是将data保存在本地,在通过initWithContentsOfURL,找到该文件,这样就可以成功创建了。
整个流程为:
NSData *audioData = [NSData dataWithContentsOfURL:someURL]; 
NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *filePath = [NSString stringWithFormat:@"%@/%@.mp3", docDirPath , fileName];
[audioData writeToFile:filePath atomically:YES]; 
NSError *error; 
NSURL *fileURL = [NSURL fileURLWithPath:filePath]; 
player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&error];
if (player == nil) 
{ NSLog(@"AudioPlayer did not load properly: %@", [error description]); }
else
{ [player play]; }

AVAudioplayer时error解决 创建失败 ERror creating player: Error Domain=NSOSStatusErrorDomain Code=2003334207 "(null)"

标签:

原文地址:http://www.cnblogs.com/tangyuanby2/p/5676809.html

(2)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!