我正在使用AVAudioPlayer播放保存在Iphone文档目录中的录制音频。 当我第一次录制音频然后播放时,它工作正常(设备连接到系统,应用程序通过Xcode运行)。
但是当我通过Xcode停止正在运行的应用程序并再次通过Xcode运行应用程序时,我收到错误Error Domain=NSOSStatusErrorDomain Code=2003334207 "The operation couldn’t be completed. (OSStatus error 2003334207.)"
文件位置:file:///var/mobile/Containers/Data/Application/410AB24E-5FB0-4401-AC59-3C03D676E951/Documents/26-06-2015--13:10:47.m4a
我的代码:
fileLocation = @"file:///var/mobile/Containers/Data/Application/410AB24E-5FB0-4401-AC59-3C03D676E951/Documents/26-06-2015--13:10:47.m4a"
NSURL *fileUrl = [NSURL URLWithString:fileLocation];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:&error];
[player setDelegate:self];
NSURL *fileUrl = [NSURL URLWithString:fileName];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:&error];
[player setDelegate:self];
我正在使用Xcode 6并在IOS 8中运行App
P.S:我已经阅读了很多与此问题相关的文档以及statckoverflow本身的几个问题,但我没有找到答案。答案 0 :(得分:14)
在iOS8下,您保存的路径在启动时无效。您看到的ID" 410AB24E-5FB0-4401-AC59-3C03D676E951"每次发布都会改变。
解决方案是保存文件名而不是完整路径,并通过获取Documents(或tmp)文件夹的路径并将文件名附加到其中来重新创建URL或完整路径。