2013-09-26 7 views
9

Bisher habe ich eine MPVolumeView verwendet, um die Lautstärke meiner iOS-Geräte zu steuern, die bis zur Aktualisierung auf iOS7 einwandfrei funktionierten.MPVolumeView funktioniert nicht mehr auf iOS 7-Geräten

Ich habe ein Testprojekt erstellt (Base SDK 6.1, Deployment Target 5.1), das nur eine MPVolumeView auf einer einzigen UIView hat. Während das Ausführen dieser App auf meinem iPad 1 (iOS 5.1) funktioniert, funktioniert es auf meinem iPhone 5 (iOS 7) nicht.

Auf meinem iPad, wenn Sie den Lautstärkeregler ziehen, ändert sich die Lautstärke des gesamten Geräts. Auch wenn ich die Hardware-Tasten benutze, spiegelt sich das auf meinem Schieberegler in der VolumeView wider. Auf meinem iPhone scheint es jedoch, dass zwischen diesen Steuerelementen keine Verbindung mehr besteht. Die Hardwaretasten haben keine Änderungen an meiner VolumeView zur Folge, und auch das Ändern des Schiebereglers in der Lautstärkeregelung führt nicht zur Lautstärkeregelung der Geräte.

Ich brauche z. die iPodMusicPlayer spielt etwas, dann funktioniert es. Sonst nicht.

Kann jemand wie ich das wieder zur Arbeit bekommen? Ich muss wirklich den Audiopegel der ganzen Geräte steuern (nicht unbedingt programmgesteuert, der Benutzer muss es in meiner App ändern können), nicht nur die Lautstärke des von der App selbst gespielten Sounds.

Antwort

0

Nach langer Recherche hatte ich Lieferung die Antwort hier. Aber ich bin sicher nicht mit diesem versuchen, wenn Sie erhalten alle Probleme lassen Sie mich wissen

Statt MPVolumeView, können Sie auch:

AVAudioPlayer *testPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"m" ofType:@"caf"]] error:nil]; 

    [testPlayer prepareToPlay]; 

vor der MPVolumeView installieren.

Wenn Ihre App, die Audio session Modus AVAudioSessionModeVoiceChat verwendet, lässt die MPVolumeView auch ohne Workaround funktionieren.