Question

J'utilise la session audio suivante dans mon délégué app:

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

  AudioSessionSetActive(true);

Je veux que l'utilisateur de pouvoir jouer de la musique iPod et utiliser mon application en même temps, ce qui est grand et fonctionne très bien ... mon application tire sa révérence et permet à la musique iPod à jouer.

La question que je vais avoir est ... après que l'utilisateur quitte mon application, va dans l'application iPod et des pauses, quand ils reviennent dans mon application, aucun de mes travaux de sons. Il est comme il pense toujours la session iPod est active, même si elle ne joue pas de la musique!

Je veux juste essentiellement réactiver ma session audio après la musique iPod a été mis en pause. En l'état actuel, après que je l'ai jamais a joué la musique via l'application iPod, je suis totalement incapable d'obtenir mon application sons de retour à moins que je recompile. :( Quelqu'un a des idées?

Modifier. J'ai oublié de mentionner que je utilise une implémentation de base de la classe AVAudioPlayer pour jouer l'audio de mon application

Merci!

Était-ce utile?

La solution

Ok Je pensais juste que je garde tout le monde a écrit dans le cas où il aide quelqu'un d'autre ... ce que je faisais était probablement genre de hackish, mais semble faire l'affaire!

    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);
    }

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top