PlaySystemSound mit aktivierter Stummschaltung

8

Ich weiß, ich muss AudioSession auf die Kategorie "Wiedergabe" einstellen, die auch dann Audio ermöglicht, wenn der Mute-Schalter eingeschaltet ist. Das mache ich, aber der Ton wird immer noch stummgeschaltet, wenn der Schalter eingeschaltet ist.

%Vor%


BEARBEITEN : Die App ist übrigens ein Soundpad. Tonwiedergabe ist der einzige Zweck der App. Hier ist, was Apple Doc dazu sagt:

  

Verwenden Sie diese Kategorie für eine Anwendung   dessen Audio-Wiedergabe primär ist   Bedeutung. Ihr Audio spielt sogar mit   der Bildschirm gesperrt und mit dem   Ring / Silent-Schalter auf stumm geschaltet.


EDIT 2 : Wenn der Mute-Schalter eingeschaltet ist, wird der Ton nicht einmal über die Kopfhörer wiedergegeben. Ich weiß, dass der Benutzer König ist . Ich weiß, dass der Mute-Schalter seinen Zweck erfüllt. Das ist nicht die Frage. Ich versuche eine Antwort auf die Tatsache zu bekommen, dass das Setzen der Kategorie AudioSession auf kAudioSessionCategory_MediaPlayback nicht das erwartete Ergebnis hat.


EDIT 3 : Dem Vorschlag von Jonathan Watmough folgend, habe ich die Eigenschaft AudioServices kAudioServicesPropertyIsUISound festgelegt, aber immer noch kein Glück. Fehle ich etwas?

%Vor%     
samvermette 17.06.2010, 02:18
quelle

5 Antworten

4

Nun, um Jonathan Watmoughs Antwort hinzuzufügen, scheint es tatsächlich nicht möglich zu sein, AudioServicesSystemSound den Mute-Schalter überschreiben zu lassen. Am Ende nutze ich OpenAL, um die Sounds abzuspielen, die nach der von Ihnen festgelegten Kategorie Audio Session gut abgespielt werden. Hier ist, wie ich die Audio-Session eingerichtet habe:

%Vor%

Um die Sounds zu spielen, habe ich Finch verwendet, einen einfachen OpenAL-basierten Soundeffekt-Player für das iPhone.

    
samvermette 26.06.2010, 17:23
quelle
1

Ich habe es noch nicht versucht, aber vielleicht möchten Sie die Eigenschaft Ihres geladenen Sounds ändern:

kAudioServicesPropertyIsUISound Ein UInt32-Wert, wobei 1 bedeutet, dass der System Sound-Server für die Audiodatei, die durch einen im Parameter inSpecifier übergebenen Systemsound angegeben wurde, die Benutzereinstellung in der Einstellung Toneinstellungen berücksichtigt und lautlos ist, wenn der Benutzer Soundeffekte ausschaltet Diese Eigenschaft ist standardmäßig auf 1 festgelegt. Legen Sie den Wert auf "0" fest, damit der System-Sound immer wiedergegeben wird, wenn er an AudioServicesPlaySystemSound übergeben wird, unabhängig von der Einstellung des Benutzers in den Soundeinstellungen . Verfügbar in iPhone OS 2.0 und höher. In AudioServices.h deklariert.

Ich erwarte, dass alles andere richtig gemacht wurde. Wenn Sie die Eigenschaft auf 0 setzen, wird dem System mitgeteilt, dass es sich bei Ihrem Sound um einen App-Sound und nicht um einen UI-Sound handelt und daher stummgeschaltet wird.

EDIT: Es sieht so aus, als ob es nicht mit Systemsounds gemacht werden kann. Wenn Sie über OpenAL gehen, können Sie natürlich mit der Stummschalttaste spielen.

Ich habe das SysSound-Sample erstellt und den folgenden Code hinzugefügt, um das Flag wie oben zu setzen, und es wird überhaupt nicht stumm abgespielt.

%Vor%     
Jonathan Watmough 17.06.2010 15:36
quelle
0

Sie rufen setActive: Fehler: für die AVAudioSession irgendwo richtig? Hier ist der Code, den ich verwende, um zu initialisieren. Aber ich verwende keine Systemsounds, ich benutze AVAudioPlayer zum Abspielen von Sounds.

%Vor%     
progrmr 18.06.2010 16:58
quelle
0

Ich kann es nicht explizit in den Dokumenten finden, aber ich würde erwarten, dass AudioServicesPlaySystemSound () Ihre Audiositzungskonfiguration ignoriert.

Wenn Sie die Sitzungsmischung und andere Eigenschaften steuern möchten, müssen Sie stattdessen AVAudioPlayer verwenden, z. B .:

%Vor%     
Crufty 24.06.2010 05:17
quelle
0

Ich verwende den folgenden Code, um mein Problem zu lösen

%Vor%     
user1066009 19.08.2013 13:08
quelle

Tags und Links