gpt4 book ai didi

avaudioplayer - 初始化AVAudioPlayer对象时如何处理来自NSOSStatusErrorDomain的错误代码-43?

转载 作者:行者123 更新时间:2023-12-03 11:33:23 30 4
gpt4 key购买 nike

我观察到的奇怪的行为与AVAudioPlayer工作时

以下是代码:

AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@",fileName]] error: &error];

在此,我从服务器下载了文件并将其存储在应用程序的Cache目录中。

我收到以下错误:
Error in playing =
Domain = NSOSStatusErrorDomain
Code = -43
Description = Error Domain=NSOSStatusErrorDomain Code=-43 "The operation couldn’t be completed. (OSStatus error -43.)"

我还验证了该位置存在该文件。
每次重新启动应用程序时,我在播放歌曲时都会遇到相同的错误。
一段时间后,当我尝试运行相同的代码时,播放器运行正常,没有任何错误。

谁能告诉我如何处理此错误?

另外,有人可以向我解释问题出在哪里吗?

最佳答案

即使可以验证songCacheURL有效且文件可用,此代码也存在相同的错误:

self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:songCacheURL error:&error];

通过首先将文件加载到NSData元素中,然后使用该文件初始化AVAudioPlayer,我得以解决该问题,如下所示:
NSData *songFile = [[NSData alloc] initWithContentsOfURL:songCacheURL options:NSDataReadingMappedIfSafe error:&error1 ];
self.audioPlayer = [[AVAudioPlayer alloc] initWithData:songFile error:&error2];

希望对别人有帮助。

罗宾

关于avaudioplayer - 初始化AVAudioPlayer对象时如何处理来自NSOSStatusErrorDomain的错误代码-43?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3618744/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com