2009-05-29 12 views
7

Zauważyłem, że niektóre aplikacje programowo ignorują itunes (jeśli jest uruchomiony) podczas uruchamiania. Jak to osiągnąć? Mam grę z podkładem muzycznym i chciałbym zatrzymać itunes lub uzyskać przynajmniej wiadomość, że itunes gra, aby móc zatrzymać podkład muzyczny.iPhone: Jak wykryć, czy iTunes gra?

thx, marc.

Odpowiedz

8

Nie musisz. Z Audio Session możesz zdecydować, jak powinien zachowywać się dźwięk.

Z Audio Session Programming Guide:

Z sesji interfejsu audio określić aspekty zachowania audio w aplikacji i skonfigurować go do żyć harmonijnie w środowisku dźwięku iPhone . Aby rozpocząć zadając samemu pytania takie jak te:

  • Chcieliby Państwo zostać wyciszony dźwięk przez przełącznika/silent ringu? Odpowiedź jest prawdopodobnie "tak", jeśli dźwięk nie jest niezbędny do pomyślnego użycia aplikacji . (Użytkownicy będą docenić możliwości, aby uruchomić grę w spotkaniu z nikim mądrzejszy.)

  • Chcesz iPod audio kontynuować grę, gdy Twój dźwięk starty? Może to być odpowiednie dla wirtualnego fortepianu, umożliwiając użytkownikom odtwarzanie wraz z utworami w ich bibliotekach. Chcesz, aby dźwięk z odtwarzacza iPod się zatrzymał, , ale w przypadku aplikacji do przesyłania strumieniowego radia .

Prawdopodobnie chcesz to:

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

uzyskać więcej typów zachowań, sprawdź Audio Session Categories lub przeczytać całą Audio Session Programming Guide.

0

Miałem przeciwny problem. Moja aplikacja odtwarza krótkie wideo bez dźwięku po uruchomieniu. Spowodowało to wyciszenie muzyki z iTunes odtwarzanej w tle.

W celu utrzymania odtwarzania muzyki, dodam to w applicationDidFinishLaunching:

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