So deaktivieren Sie iOS System Sounds

8

Ich arbeite an einer iPad-App, die mit einem Zubehörteil verbunden ist, das Ton abspielt. Wenn das iPad mit dem Zubehör verbunden ist, möchte ich alle Systemklänge stummschalten, aber andere Töne (iPod) zulassen.

Ein Teil des Grundes dafür ist, dass das Zubehör so beschaffen ist, dass es während einer Live-Aufführung verwendet werden soll. Es wäre natürlich ärgerlich, wenn E-Mails, Alarme oder andere Systemgeräusche durchgerannt und verstärkt würden (verrückt laut).

Ich habe mir AVAudioSession angesehen (lies Audio Sessions um mehr zu erfahren) und probierten alle AudioSessionKategorien aus . Bei keiner dieser Kategorien wird der Systemton stummgeschaltet, stattdessen können Sie nur Anwendungsgeräusche (iPod) stummschalten - für meine Zwecke nicht geeignet.

Ich habe auch Dokumente zu " System Sound Services ", aber Sie können nur Systemsounds abspielen. Es gibt keine API, um Systemgeräusche zu deaktivieren, während Ihre App läuft.

Eine letzte Anmerkung, wir haben es leicht gemacht, den iPad-Level (Lautstärke) anzupassen, indem Sie das MPVolumeView einbeziehen, aber wir erwarten, dass der Benutzer iPod-Musik abspielen möchte. Wenn Sie während der Wiedergabe von iPod-Musik (oder Musik von einer anderen App) und einer E-Mail durchgehen, würden Sie überrascht sein, wie laut / ANNOYING diese E-Mail plötzlich wird, wenn Sie unser Zubehör durchgehen. Es ist sogar möglich, dass das Gerät beschädigt werden könnte. : D

    
Sam 08.06.2011, 19:52
quelle

3 Antworten

14

Mit AVSystemController ist es möglich, die Systemklänge, die sich als Klingelton herausstellen, zu ändern. AVSystemController existiert jedoch im privaten Celestial-Framework. Da dieses Framework von UIKit referenziert wird, ist es immer noch möglich, diese Klasse zu verwenden, ohne sie direkt zu referenzieren.

Apple verbietet die Verwendung von privaten APIs, so dass dies alleine eine schlechte Idee ist. Angesichts meiner Umstände denke ich, dass sie eine Ausnahme machen können, ABER ich werde diesen Kurs wahrscheinlich aufgeben, nachdem ich ihn genommen habe, dass ich mein Problem nicht gelöst habe. Es stummt zwar die Töne, aber sobald ich es an meinem Zubehör anschließe, klingen die Systemklänge mit maximaler Lautstärke, obwohl die Klingellautstärke auf 0 eingestellt ist. Das lässt mich glauben, dass die Antwort auf mein Problem in der MFI-Dokumentation.

Wie auch immer, hier ist, wie Sie den Klingelton mit privaten Rahmen / API (die Ihre App ohne irgendeine spezielle Erlaubnis abgelehnt wird) ändern.

kurze Antwort:

%Vor%

antworte, ohne direkt auf Celestial frameork / AVSystemController.h verweisen zu müssen:

%Vor%     
Sam 10.08.2011, 15:18
quelle
3

Mit dem MediaPlayer-Framework können wir die Ebene des SYSTEM-Sounds festlegen

%Vor%     
BB. 09.07.2012 09:55
quelle
1

Am besten können Sie Ihre Benutzer dazu ermutigen, in den Flugzeugmodus zu wechseln.

    
pkananen 08.06.2011 19:56
quelle

Tags und Links