2016-07-13 47 views
0

Ich bin beauftragt zu finden, warum diese App den Musik-Player auf meinem iPod stoppt. Derzeit habe ich in XCode Breakpoints in der allerersten Zeile von main() gesetzt, und immer noch, wenn ich diese Zeile erreiche, hat der Music Player bereits aufgehört.ios - Musik-Player stoppt, sobald ich meine App

Ich kann mir vorstellen, dass jeder statische Konstruktor bereits ausgeführt hätte, aber ich habe nach den offensichtlichen Schuldigen gesucht (keine Erwähnung von AVAudioSession), und nichts gefunden, was vor main() gelaufen ist.

Da die Codebase einfach riesig ist, wäre es ein Schmerz, blind nach jedem Konstruktor in jeder Datei zu suchen, ohne zu wissen, wonach ich suche. Können Sie mir sagen, ob es irgendeine Art von XCode-Projekteigenschaft gibt, die das Abspielen von externem Audio stoppt, oder alles, wonach ich suchen könnte? Danke

EDIT: Ich habe es sehr eingeengt. Zuerst scheint XCode die meisten meiner Haltepunkte zu ignorieren, die mich völlig irreführen. Es war tatsächlich eine statische Initialisierung eines Objekts, die schließlich zu diesem Aufruf führt:

newDevice = alcOpenDevice (NULL);

Aus irgendeinem Grund kann ich hier tatsächlich einen Haltepunkt bekommen. Go figure ... Also, ich habe die Musik in dieser Zeile gespielt, aber nicht nachdem ich sie ausgeführt habe. Es scheint, Openal Initialisierung des Geräts schaltet alle externen Musik, aus irgendeinem Grund ... Versuchen zu verstehen, warum, und wie kann ich es umgehen ...

+0

Ich würde das ganze Projekt für die 'AVAudioSession' suchen und dann überprüfen, was die Eigenschaften in jeder Phase sind. Sie sollten hinzufügen, wenn der Musik-Player stoppt - zum Beispiel, unterbricht es es beim Start oder zur Hälfte durch seinen "viewDidLoad" -Zyklus? etc etc –

+0

Es wird beim Start unterbrochen, noch vor main(). Ich habe versucht, einen Haltepunkt in der ersten Zeile von main(), führen Sie die App, der Musik-Player gestoppt. Ich wechselte zum Musikplayer, legte es auf Wiedergabe und nahm die App in xcode wieder auf. Die Musik spielte weiter. Es ist nur etwas beim Start, das die Musik tötet, und ich kann es nicht finden ... –

+0

Ich wollte nur klarstellen ... Spielt die Musik nach dem Start weiter, ohne zurückzugehen? Wir brauchen wahrscheinlich auch mehr Code, um zu verstehen, was passiert, zum Beispiel: 'AVCaptureSession's könnte die' AVAudioSession' unterbrechen/ignorieren. –

Antwort

0

Ok, ich habe das Problem herausgefunden. Aus irgendeinem Grund half XCode nicht. Also hatte ich überall viele Haltepunkte gesetzt, um zu sehen, was passieren würde, bevor ich zur Hauptstelle kam. Dies ist, wo XCode mir fehlgeschlagen ist, weil ich wusste, dass der Code ausgeführt wurde, aber aus irgendeinem Grund die Haltepunkte nicht ausgelöst wurden. Auch aus anderen Gründen haben andere dies getan, so dass ich immer noch dieses besondere Geheimnis zu lösen habe.

Abgesehen davon war das Problem, OpenAL zu initialisieren, kurz bevor AVAudioSession mit AVAudioSessionCategoryAmbient konfiguriert wurde. Nachdem ich die beiden umgestellt hatte, funktionierte alles gut.

Vielen Dank für Ihre Hilfe!

+0

Hi Joao, wenn Sie über Breakpoints sprechen, überprüfen Sie das Schema des Projekt Build, um zu sehen, ob es auf Debug oder Release ist. check exec debug –

1

Überprüfen Sie die Dokumentation für AVAudioSession's Categories, es klingt wie Ihre App hat eine nicht mischbar AVAudioSessionCategory, können Sie reproduzieren, wenn Sie es in AVAudioSessionCategoryAmbient ändern?

+0

Ich habe einen Haltepunkt in jedem Anruf gesetzt, der AVAudioSession (alle 57 von ihnen in Cocos2D) auch nur im entferntesten erwähnt hat, und keiner von ihnen wird getroffen. Der Breakpoint in der ersten Zeile des Main wird (offenkundig) mit der bereits abgespielten Musik getroffen. So etwas vor dem Haupt tötet Music Player. –

0

Haben Sie versucht, die Musik für die Wiedergabe über die AppDelegate einzustellen?

Versuchen Sie es so, wenn der Benutzer zurück in die App lädt, fährt er fort, Musik zu spielen.