Frage

Ich verwende die folgende Audio Session in meinem AppDelegate:

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

  AudioSessionSetActive(true);

Ich möchte, dass die Benutzer in der Lage sein iPod Musik zu spielen und meine App zur gleichen Zeit verwenden, die groß ist und funktioniert gut ... meine App Bögen aus und ermöglicht es dem iPod Musik zu spielen.

Das Problem, das ich habe, ist, ..., nachdem der Benutzer meine App beendet wird, geht in die iPod App und Pausen, wenn sie wieder in meine App kommen, keiner meiner Laute Arbeit. Es ist wie es immer noch die iPod-Sitzung aktiv denkt, auch wenn es keine Musik abgespielt wird!

Ich mag im Grunde nur reaktivieren meiner Audiositzung nach iPod-Musik angehalten wurde. Wie es aussieht, nachdem ich immer Musik über den iPod App gespielt, bin ich völlig unfähig zu meiner app klingt zurück, wenn ich neu kompilieren zu bekommen. :( Wer irgendwelche Ideen?

Edit:. Ich vergaß zu erwähnen, ich eine grundlegende Implementierung der AVAudioPlayer Klasse bin mit meinem App-Audio spielen

Danke!

War es hilfreich?

Lösung

Okay, dachte, ich würde jeden im Fall geschrieben halten hilft es jemand anderes ... was ich tat, war wahrscheinlich Art hackish, scheint aber den Trick zu tun!

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top