Ответ 1
Итак, у меня тоже была эта проблема - ну, я уверен, что она такая же...
У нас было приложение в магазине приложений уже год или около того, и недавно нам нужно было немного изменить содержимое, хотя ничего не было.
Вдруг звук перестает работать - и симулятор в последней версии sdk (версия 4.0), и на устройстве тоже (снова работает iOS 4).
Код, который всегда работал для нас, был...
NSString *sound_file;
if ((sound_file = [[NSBundle mainBundle] pathForResource:@"track1" ofType:@"mp3"])){
NSURL *url = [[NSURL alloc] initFileURLWithPath:sound_file];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
audioPlayer.delegate = self;
[url release];
[audioPlayer prepareToPlay];
[audioPlayer play];
}
Наконец, я узнал, что теперь вам нужно установить тип воспроизведения AVAudioSession, чтобы звук воспроизводился через динамик, как он уже делал! Поместите следующую строку кода в свой делегат приложения applicationDidFinishLaunching обработчик событий...
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
Не забудьте добавить include в файл делегирования .h файла приложения (очевидно, вам нужно также импортировать структуру AVFoundation, если это еще не сделано)...
#import <AVFoundation/AVAudioSession.h>
Надеюсь, теперь это сделает ваш звук на устройстве.
Не пытайтесь понять, что, по моему мнению, может быть отдельной проблемой, и что звук все еще не воспроизводится в симуляторе. Я видел другие сообщения, предлагающие это, но я не уверен, насколько это широко распространено. Я узнал, что если бы я выбрал iPad 3.2 в качестве своего симулятора, он по крайней мере работал над этим. Радость!
Что мне кажется сумасшедшим, так это то, что это, должно быть, происходит с множеством людей, и все же довольно сложно найти информацию или предложения о чем-то, что должно быть довольно известной проблемой - в конце концов, я видел множество сообщений на форумах, на которые, похоже, не ответили.
Anywayz, надеюсь, это поможет кому-то еще.