Симулятор iphone 3.2 AvAudioPlayer fileURL Проблема - PullRequest
0 голосов
/ 28 июня 2011

У меня странная проблема с avaudioPlayer. Он отлично работает, когда я запускаю симулятор iphone 4.0, 4.1 и 4.2. Он также работает нормально, когда я запускаю ipad simulator 4.2, но когда я запускаю ipad simulator 3.2, он падает, потому что код AVAudioPlayer имеет fileURL, который имеет значение Null.

Вот мой код.

   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) правильно, поэтому filePath 1.mp3 не должен быть нулевым. 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'

Как мне это исправить?

Ответы [ 2 ]

1 голос
/ 03 декабря 2011

Имя ресурса не должно иметь расширения, ваше имя должно называться только @ "1"

0 голосов
/ 03 декабря 2011

посмотрите сообщение об ошибке

reason: ' *** -[NSURL initFileURLWithPath:]: nil string parameter

, так что вы можете сделать паузу на

NSString *filePath = [[NSBundle mainBundle] pathForResource:appDelegate.globalMP3Name ofType:@"mp3"];

po appDelegate.globalMP3Name, чтобы увидеть, что произойдет.

Я думаю, что это просто ноль.

...