Как определить, воспроизводят ли другие приложения фоновый звук? - PullRequest
3 голосов
/ 30 июня 2010

Я делаю игру для iphone / ipad и не хочу, чтобы моя фоновая музыка мешала музыке, которую может уже играть пользователь.

Я знаю, что могу узнать состояние приложения iPod с помощью MPPlayerController, но как бы мое приложение выяснило, если что-то еще, например Pandora, воспроизводит фоновое аудио на iOS4?

Ответы [ 2 ]

9 голосов
/ 30 июня 2010

Я наконец понял это. Я видел много примеров, но не мог заставить их работать.

Большинство примеров там не указывают на что-то вроде:

    UInt32   propertySize, audioIsAlreadyPlaying;

propertySize = sizeof(UInt32);
AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &audioIsAlreadyPlaying);

для работы, подходящей платформой для добавления в ваше приложение является AudioToolbox. Я продолжал пытаться добавить другие аудио рамки и всегда пропускал эту.

Как только вы добавите этот фрейм (и импортируете его в рассматриваемый файл кода), просто проверьте, является ли audioIsAlreadyPlaying нулем или единицей.

0 голосов
/ 27 октября 2015

AudioSessionGetProperty (как упоминалось в ответе Готунга) устарело с iOS 7.

Вместо этого попробуйте этот однострочный, который использует isOtherAudioPlaying :

BOOL isOtherAudioPlaying = [[AVAudioSession sharedInstance] isOtherAudioPlaying];

Работает на iOS 6 +.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...