2016-07-12 17 views
1

Ich habe eine Anwendung, die zuvor gut funktioniert hatte (mit iOS 9, iPhone 6 und niedriger). Es verwendet Audio-Unit-APIs, um Audio mit einem AudioUnitRender-Callback (Berechnung von Audiofrequenzen) zu verarbeiten. Dieser Code funktionierte auch gut auf iPhone 6s, bis ich versuche, Audio wiederzugeben, nach dem ich einen Fehler 50 (sehr allgemeiner Fehler) erhalte, wenn ich AudioUnitRender anrufe.AudioUnit Programmierung iOS iPhone 6s Fehler 50 in audiounitrender nach der Wiedergabe von Audio

Der gleiche Code funktioniert gut, bevor Audio-Wiedergabe-APIs (alle einschließlich Wiedergabe von Video) und funktioniert gut, vor oder nach dem ein iPhone 6, iPhone 5, 5 s unter Verwendung usw.

eine Tonne Code so beteiligte Es gibt Ich poste es nicht, aber irgendwelche Gedanken darüber, was das verursachen könnte oder was ich vielleicht versuchen könnte, um das Problem zu diagnostizieren, würden sehr geschätzt werden.

Antwort

1

Fehler 50 kann ein Hinweis auf einen nicht unterstützten Audiomodus sein, z. B. Abtastrate.

In einigen Konfigurationen unterstützt die RemoteIO-Audioeinheit eines iPhone 6s nur eine Abtastrate von 48000 (nicht 44100 wie bei allen älteren iOS-Geräten, außer den veralteten 2G- und 3G-iPhones). Dies gilt möglicherweise auch für andere iOS-Gerätemodelle, die den Apple A9-Prozessor verwenden.

Siehe: https://forums.developer.apple.com/message/72961#72961 für weitere Details.

IIRC, entweder einstecken oder ausstecken (vergessen, was) ein Headset erlaubt die 6s vorübergehend zu unterstützen 44.1k.

+0

Hmmm, interessant. Ich muss das versuchen und sehen, ob es einen Unterschied macht. Irgendeine Idee, warum das Abspielen von Audio das Problem verursachen würde und/oder was kann getan werden, um das Problem zu lösen, wenn versucht wird, erneut aufzunehmen? –