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

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]; }
时间: 2024-08-02 19:08:23

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

AVAudioPlayer 的 Error Domain=NSOSStatusErrorDomain Code=-10875 "未能完成操作。(“OSStatus”错误 -10875。)"

今天在做一个项目,因为要播放一个音频,就选择用 AVAudioPlayer来来做,因为以前用过,也没有注意太多后来就直接写,但是写好之后运行看效果,怎么也播放不出来,本来是因为本地音频文件有问题,后来重新找一个文件然后在播放,还是出现同样的问题. 用这段代码,以前是正常的,现在就不可以了,(网上还有好多开发人员用该方式是没有问题) - (void)playRuningDistance:(TrainingPlayAudioType)playType{ NSString *playFileName

ssm整合时出现 org.springframework.beans.factory.BeanCreationException :Error creating bean with name ‘XXX’ 异常的原因及解决方法

ssm整合时出现 org.springframework.beans.factory.BeanCreationException :Error creating bean with name 'XXX' 异常的原因及解决方法(只是可能出现下列几种,不包含全部) 此异常为:注入 bean 失败异常,也就是找不到注入的bean. 可能有以下几种原因: 1.bean未注解或者注解错误 2.项目整合的时候jar包冲突 3.'XXX'的配置有错误 解决:1,3仔细检查就是,网上大部分的人应该是2这种错误,

mysql主从同步失败Last_IO_Error: Got fatal error 1236 from master解决方法

mysql教程主从同步失败Last_IO_Error: Got fatal error 1236 from master解决方法 遇到这样的错误如:“Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'”等或由于清数据导致主从库不同步了,解决办法如下: 先进入sl

解决使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的问题

0. libjpeg 介绍 libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码.JPEG编码和其他的JPEG功能的实现.这个库由独立JPEG工作组维护.参考:http://zh.wikipedia.org/wiki/Libjpeg 本文基于 libjpeg9 对使用 libjpeg 保存图片时因磁盘写入失败导致程序退出的问题进行分析,文中的代码和解决问题的方法均可结合 libjpeg9 编译通过. 1.使用 libjpeg 保存图片的方法. 不多说,直接上代码: /**

解决Cygwin编译cocos2dx 遇到的 error: 'UINT64_C' was not declared in this scope 问题

环境工具:Win10.VS2013.cocos2d-x-2.2.6.Cygwin.ADT 问题来源:写了一个小游戏,VS2013上运行成功,就尝试着打包apk,项目导入到ADT里面,添加了cocos2dx lib库以后,讨厌的红x消失,下来就是在cygwin里面预编译得到xxx.so文件了,但是问题来了,报错!!! jni/../../Classes/GameLayer.cpp:227:46: error: 'UINT64_C' was not declared in this scope 怎么

ORACLE 11G DB RAC ORA-00257archiver error解决办法

ORA-00257archiver error解决办法 1.之前有处理单机过oracle 11.2.0.4归档日志磁盘空间不足的问题 ,但是没有处理过ORACLE RAC的归档日志磁盘空间不足的问题 所以没有预想到会是出现asm磁盘空间不足的议题 Oracle数据库是目前业界最常用的大型数据库系统,我在单机ORACLE的实际项目中有遇到出现ORA-00257错误(空间不足错误), 通过查找资料,发现绝大部分说这是由于归档日志太多,占用了全部的硬盘剩余空间导致的,可通过简单删除日志或加大存储空间就

IAP测试购买失败,Error Domain=SKErrorDomain Code=0 "无法连接到 iTunes Store"

关于IAP购买失败的问题 解决方法 Error Domain=SKErrorDomain Code=0 "无法连接到 iTunes Store" UserInfo=0x7f4c530 {NSLocalizedDescription=无法连接到 iTunes Store} bundle id和product id在另一个工程已经测试通过了的说 1 是不是程序没正式发布?只是在测试iap,你把appstore的账号手动更换成你添加好的测试账号 然后再去支付. 2 http://stacko

修改grub解决计算机启动报错:ERROR 17

修改grub解决计算机启动报错:ERROR 17 原本计算机有C,D,E,F,G.C盘windows系统盘,G盘安装了Centos.后来由于需要,就压缩卷的方式从D盘压缩出一个H盘.然后再次启动计算机的时候就遇到了错误:ERROR 17 原因: 就在于先安装windows后安装Linux这样的话,grub就由位于G盘的Centos引导,现在该分区之前又划分出一个新的逻辑分区,就导致磁盘系统符号向后移了一位,因此grub失败. 解决方案: 1,刻录一个Linux安装U盘,进入BIOS修改启动项,从

解决Jenkins上git出现的“ERROR: Error fetching remote repo 'origin'”问题

今天对清掉了Jenkins中项目的工作空间,结果构建出现“ERROR: Error fetching remote repo 'origin'”问题:网上各种找也没找到解决这个问题的方法. 后来看错误之前是“> git.exe config --local --remove-section credential # timeout=10”,不会是跟密码有关吧! 于是将url改成http://用户名:密码@ip/的格式,git配置改成不使用密码,结果OK了. 解决Jenkins上git出现的"