Мое приложение загружает mp3 с нашего сервера и воспроизводит его обратно пользователю. Файл имеет 64 кбит/с (что вполне соответствует допустимому диапазону для iPhone, если я правильно понимаю). Я искал, как это сделать на десятках сайтов, и все они предлагают, чтобы я сделал именно это:
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://.../file.mp3"]];
NSError *e = nil;
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:data error&e];
[player setDelegate:self];
Когда я запускаю код, игрок возвращается к нулю, и я получаю эту ошибку:
2011-02-04 10:44:46.176 MyApp[6052:207] Error loading audio: Error Domain=NSOSStatusErrorDomain Code=1954115647 "The operation couldn’t be completed. (OSStatus error 1954115647.)"
2011-02-04 10:44:49.647 MyApp[6052:207] unsupported file type
Я проверил файл, и я знаю, что он работает. Он будет проигрываться без проблем в проигрывателе Windows Media и Quicktime на Mac. Я также загрузил файл в эмулятор iPhone, и он играет без проблем. Файл в порядке, но по какой-то причине AVAudioPlayer ему не нравится.
Есть ли что-то, что мне нужно изменить? Есть ли какие-то настройки для NSData, чтобы указать, какой файл он есть? Кто-нибудь знает?