Domanda

Sto utilizzando il seguente Audio Session nella mia app delegato:

  AudioSessionInitialize(NULL, NULL, NULL, self);
  UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
  AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);

  AudioSessionSetActive(true);

Voglio che l'utente sia in grado di riprodurre la musica di iPod e utilizzare la mia app, allo stesso tempo, che è grande e funziona bene ... la mia app archi fuori e permette la musica di iPod per riprodurre.

Il problema che sto avendo è ... dopo che l'utente esce la mia app, va in app iPod e pause, quando tornano nella mia app, nessuno del mio lavoro suoni. E 'come se pensa ancora la sessione iPod è attiva, anche se non sta giocando qualsiasi tipo di musica!

Io fondamentalmente voglio solo riattivare la mia sessione audio dopo la musica di iPod è in pausa. Così com'è, dopo che ho mai ha suonato musica tramite l'applicazione iPod, io sono totalmente in grado di ottenere il mio app di suoni di nuovo a meno che non ricompilazione. :( Qualcuno ha qualche idea?

Modifica:. Ho dimenticato di dire che sto utilizzando un'implementazione di base della classe AVAudioPlayer per riprodurre l'audio del mio app

Grazie!

È stato utile?

Soluzione

Ok Ho pensato di tenere tutti ha scritto in caso aiuta qualcun altro ... quello che ho fatto è stato probabilmente sorta di hacker, ma sembra fare il trucco!

    UInt32 isPlaying;
    UInt32 propertySize = sizeof(isPlaying);
    OSStatus status;

    // check to see if their iPod music is playing
    status = AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &isPlaying);

    // set the session category accordingly
    if(!isPlaying) {
      NSLog(@"...SoloAmbientSound");
      UInt32 sessionCategory = kAudioSessionCategory_SoloAmbientSound;
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
    }else{
      NSLog(@"...AmbientSound");
      UInt32 sessionCategory = kAudioSessionCategory_AmbientSound;
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory);
    }

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top