avaudioPlayer我遇到了一个奇怪的问题。当我运行iphone模拟器4.0,4.1和4.2时它工作正常。当我运行ipad模拟器4.2时,它也运行正常,但是当我运行ipad模拟器3.2然后它崩溃,因为AVAudioPlayer代码有一个无效的fileURL。
这是我的代码。
NSString *filePath = [[NSBundle mainBundle] pathForResource:appDelegate.globalMP3Name
ofType:@"mp3"];
// Convert the file path to a URL.
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
我正在使用AVFoundation Framework与弱链接使其与iOS3兼容。它正确获取globalMP3Name(1.mp3),因此1.mp3的filePath不应为null。 FileURL正在与其他模拟器一起使用,但只有3.2正在崩溃。
以下是来自控制台的错误信息。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: ' *** -[NSURL initFileURLWithPath:]: nil string parameter'
2011-06-27 18:51:57.092 Stack: (
45475920,
46633772,
45213451,
45213290,
1135303,
18960,
3038446,
3535934,
3545280,
3540077,
3165672,
3057219,
3088856,
53191036,
44755100,
44751016,
53184669,
53184866,
3081074,
10148,
10037
)
terminate called after throwing an instance of 'NSException'
我该如何解决?
答案 0 :(得分:1)
资源的名称不应该有扩展名,你的名字只能叫@“1”
答案 1 :(得分:0)
查看错误消息
reason: ' *** -[NSURL initFileURLWithPath:]: nil string parameter
,所以你可能想暂停
NSString *filePath = [[NSBundle mainBundle] pathForResource:appDelegate.globalMP3Name ofType:@"mp3"];
po appDelegate.globalMP3Name看看会发生什么。
我认为这只是零。