Ответ 1
Поместите эту строку в свой application:didFinishLaunchingWithOptions:
метод вашего AppDelegate
или вообще перед использованием аудиоплеера.
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:nil];
Согласно документации, категория AVAudioSessionCategoryAmbient
-
для приложения, в котором воспроизведение звука не является первичным, т.е. ваше приложение может быть успешно использовано при выключенном звуке.
Эта категория также подходит для приложений "поиграть", таких как виртуальное пианино, которое пользователь воспроизводит через аудио iPod. Когда вы используете эту категорию, звук из других приложений смешивается с вашим аудио. Ваш звук отключается блокировкой экрана и переключателем Silent (называемым переключателем Ring/Silent на iPhone).
Если вы хотите также гарантировать, что ошибка не возникла, вам нужно проверить возвращаемое значение
NSError *error;
BOOL success = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error];
if (!success) {
//Handle error
NSLog(@"%@", [error localizedDescription]);
} else {
// Yay! It worked!
}
В качестве заключительного замечания не забудьте связать структуру AVFoundation
с вашим проектом и импортировать его.
#import <AVFoundation/AVFoundation.h>