AVAudioplayer播放音频时报错 Error Domain=NSOSStatusErrorDomain Code=1954115647 "(null)"
来源:互联网 发布:苹果字体软件 编辑:程序博客网 时间:2024/06/14 16:55
AVAudioplayer播放音频时报错
Error Domain=NSOSStatusErrorDomain Code=1954115647 "(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]; }
解决二:有个简单的办法,initWithData: fileTypeHint: error:
用这个,指定类型(比如MP3就用AVFileTypeMPEGLayer3)
NSError *playerError = nil;
_soundPlayer = [[AVAudioPlayeralloc]initWithData:dataerror:&playerError];
if (playerError && playerError.code ==1954115647) {
_soundPlayer = [[AVAudioPlayeralloc]initWithData:datafileTypeHint:AVFileTypeMPEGLayer3error:&playerError];
}
- AVAudioplayer播放音频时报错 Error Domain=NSOSStatusErrorDomain Code=1954115647 "(null)"
- IOS 创建AVAudioPlayer时出现问题:Domain=NSOSStatusErrorDomain Code=2003334207 "(null)"
- Domain=NSOSStatusErrorDomain Code=1937337955 关于iOS录音AVAudioRecorder与音频播放AVAudioPlayer真机调试录音不能播放的问题
- AVAudioPlayer 的 Error Domain=NSOSStatusErrorDomain Code=-10875 "未能完成操作。(“OSStatus”错误 -10875。)"
- Error Domain=kCLErrorDomain Code=0 "(null)"
- IOS Error Domain=NSURLErrorDomain Code=-999 "(null)"
- Error Domain=NSURLErrorDomain Code=-1100 "(null)"
- AFNetwork 2.0在请求时报错 Error Domain=NSCocoaErrorDomain Code=3840
- AFN3.0 PATCH请求报错Error Domain=NSURLErrorDomain Code=-1012 "(null)"
- Error Domain=NSCocoaErrorDomain Code
- CoreData____.sqlite options:(null) ... returned error Error Domain=NSCocoaErrorDomain Code=134100 "T
- CoreData____.sqlite options:(null) ... returned error Error Domain=NSCocoaErrorDomain Code=134100 "T
- Xcode后台打印出现:[Client] Geocode error: Error Domain=GEOErrorDomain Code=-8 "(null)”
- 音频播放 AVPlayer AVAudioPlayer
- iOS 音频播放 AVAudioPlayer
- IOS AVAudioPlayer 音频播放
- AVAudioPlayer播放音频
- 音频播放 AVAudioPlayer
- div+css内部样式
- Maven-SSM配置
- mybatis之动态SQL
- shell脚本日志的简单实现
- Android Studio 2上利用NDK进行OpenCV 3.1开发
- AVAudioplayer播放音频时报错 Error Domain=NSOSStatusErrorDomain Code=1954115647 "(null)"
- MVC中利用ActionFilterAttribute过滤关键字
- Java-验证码生成(数字+字母)
- iOS 标注#pragma mark、FIXME、TODO等等
- 斯坦福大学Stanford coreNLP 宾州树库依存句法标注体系
- 代码适配Masonry使用的详细介绍
- 如何用好 Chrome devtools
- 网站导航菜单+跳转
- TCP/IP和socket