2013-10-11 10 views
5

Ich arbeite an einer VOIP-App. Ich verwende Core Audio Audio Units zum Abspielen und Aufnehmen von Audio. Ich muss in der Lage sein, Lautstärke und Ausgabegeräte zu manipulieren. Ich versuche MPVolumeView zu verwenden, um Lautstärke einzustellen und Ausgabegeräte zu wählen.Core Audio (Audio Units) Audiositzung und MPVolumeView

Mein Problem ist: Wenn ich Audioeinheiten anfange (Playout und Capture für RemoteIO Audio Unit), scheint MPVolumeView nicht mehr die Lautstärke meiner Sitzung zu steuern, sondern steuert systemweite Soundeinstellungen. Gleichzeitig steuern die Hardware-Tasten die Lautstärke der von den Audio Units gespielten Sounds. Auch wenn ich anfange, Audio Units zu verwenden, startet MPVolumeView die Schaltfläche zum Ändern der Ausgabegeräte, aber vorher nicht.

Es scheint, dass MPVolumeView die Lautstärke für eine systemweite Audiositzung steuert, aber wenn ich Audio Units benutze, wird eine weitere App (oder sogar Audio Unit Wide) Audio Session erstellt und zum Abspielen von Sound verwendet.

Also die Frage ist, wie MPVolumeView Lautstärke für meine Core Audio Audio-Session zu steuern?

Ich würde mich über Hinweise, warum dies geschieht, freuen. Ich habe fast den ganzen Tag verbrachte googeln und ich sehe, dass manche Menschen Probleme im Zusammenhang haben aber keine bekam keine Hinweise :(. Ich kann auch mehr Details veröffentlichen, wenn nötig.

+1

Ok es scheint, es ist iOS Bug. Ich habe einen Fehlerbericht an Apple eingereicht und sie haben mir sogar geantwortet, dass es sich um einen Fehler von jemandem handelt. Ich warte immer noch auf eine Lösung von ihrer Seite. In der Zwischenzeit würde ich mich freuen, wenn mich jemand auf einen Workaround aufmerksam machen könnte. – user1264176

Antwort

1

als Fehler von Apple Ingenieur bestätigt.

Genauer gesagt - MPVolumeView sollte an eine bestimmte Audio-Route gebunden sein (im weitesten Sinne, wie Audio-Route + Audio-Kategorie + Modus usw.), und es ist für ein paar der häufigsten Routen (zB Kopfhörer + Spielkategorie + Standardmodus))

Wenn also eine benutzerdefinierte Route erstellt wird, versucht MPVolumeView immer noch, die letzte (praktikable) oder Standardroute zu steuern.