iPhone: как определить, играет ли iTunes? - PullRequest
7 голосов
/ 29 мая 2009

Я заметил, что некоторые приложения программно отключают itunes (если он запущен) при запуске. Как это достигается? У меня есть игра с фоновой музыкой, и я хотел бы либо остановить itunes, либо получить хотя бы сообщение о том, что itunes играет, чтобы я мог остановить фоновую музыку игры.

ТНХ, Марк.

Ответы [ 2 ]

8 голосов
/ 29 мая 2009

Вам не нужно. С Audio Session вы можете решить, как должен вести себя звук.

Из Руководства по программированию аудиосеанса :

С интерфейсом аудио сеанса вы указать аспекты вашего приложения поведение звука и настроить его жить в гармонии с iPhone аудио среда. Вы начинаете с вопроса себе такие вопросы, как эти:

  • Хотите ли вы, чтобы звук отключался с помощью переключателя Ring / Silent? Ответ, вероятно, «да», если аудио не обязательно использовать ваш приложение успешно. (Пользователи будут ценю возможность запустить вашу игру на встрече ни с кем не знающим.)

  • Хотите ли вы, чтобы звук iPod продолжал воспроизводиться, когда ваш звук начинается? Это может быть подходящим для виртуальное пианино, позволяющее пользователям играть наряду с песнями в их библиотеках. Вы хотите, чтобы звук iPod останавливался, однако для потокового радио применение.

Вы, вероятно, хотите это:

UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound;
AudioSessionSetProperty (
    kAudioSessionProperty_AudioCategory,
    sizeof (sessionCategory),
    &sessionCategory
);

Для получения информации о других типах поведения, проверьте Категории аудио-сеансов или прочитайте полное Руководство по программированию аудио-сеансов .

0 голосов
/ 03 июля 2012

У меня была противоположная проблема. Мое приложение воспроизводит короткое видео без звука после запуска. Это привело к отключению фоновой музыки iTunes.

Чтобы музыка продолжала играть, добавляю в приложение DidFinishLaunching:

NSError* error;
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: &error];    
    if (error) NSLog(@"Unable to configure Audio");
...