iphone - iOS AVAudioPlayer OSStatus 错误-43

标签 iphone ios ipad avaudioplayer

在我的应用程序中,可以录制和保存歌曲。更新我的应用程序后,我在尝试初始化 AVAudioPlayer 时遇到错误。这首歌保存在文档目录中,我只是用那首歌创建了一个指向文档目录的 URL,并得到了上面的错误。看了其他类似问题的回答,说-43是文件未找到错误,所以我把我的文档目录下的都输出了,可以清楚的看到我要访问的文件在文档目录下。它不能是文档目录路径中的错误,因为我只是使用

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

获取文档目录。

我如何初始化音频播放器、我尝试访问的错误和 URL:

[[AVAudioPlayer alloc]initWithContentsOfURL:urlOfSong error:&error]; 
if (error)
        {
            NSLog(@"Error in audioPlayer: %@", 
                  [error localizedDescription]);
            NSLog(@"error with this: %@",urlOfSong);
        }


2013-01-24 18:51:40.223 app[14104:907] Error in audioPlayer: The operation couldn’t be completed. (OSStatus error -43.)
2013-01-24 18:51:40.224 app[14104:907] error with this: file://localhost/var/mobile/Applications/C8F1FB54-CF7E-46EC-9B87-8BE3CE9B0A3D/Documents/k%20-%20Spongebob.m4a

可以看出我要播放的文件叫k - Spongebob.m4a

这是我的文档目录的输出:

2013-01-24 18:51:40.228 app[14104:907] (
    "Recording 11413, 10:28 PM - All I Need.m4a",
    "k - Spongebob.m4a" 
)

请记住,我提到过这只是在我更新我的应用程序之后。在发送更新之前进行测试时,一切正常。如果我录制一首新歌并保存,然后尝试使用完全相同的方法播放它,它就可以正常工作。当我尝试播放更新前录制的歌曲时会发生这种情况。

有什么帮助吗???

最佳答案

我想通了。显然,当您更新应用程序时,路径中文档前面的字母和数字(即 0B6DDD37-792B-4C1A-98A3-1A96B64B4DB0)会发生变化。我用旧字母和数字保存旧路径并尝试用该路径初始化,这就是发生错误的原因。我只需要使用文档目录的当前路径进行初始化。这解释了为什么我在发送更新之前进行测试时没有发生此错误。

关于iphone - iOS AVAudioPlayer OSStatus 错误-43,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14513122/

相关文章:

ios - 在 UITableView 中重用已加载的标题 View

android - 自动从 Android 和 IOS 发送短信

ios - 从计划中的数组中删除适当的 CCSprite

ios - Xcode 不包含 cordova 应用程序重建中的更改

ios - 如何让我的应用程序仅在配备视网膜显示屏的 iPad 上运行?

ios - UIInterfaceOrientation 总是在 AppDelegate iPad 中返回 Portrait?

Ipad DWG/DXF 查看

iphone - 人微笑时如何找出whitePixelValue?

iPhone - 调用 SOAP 服务

iphone - NSHost花费了很长时间