Ich erstelle ein Video & amp; Audio-Aufnahme-App. Jedes Mal, wenn ich mit der Aufnahme beginne, wird die im Bluetooth-Lautsprecher abgespielte Musik im Lautsprecher des Telefons abgespielt. Wenn ich die App verlasse, wird die Musik über den Bluetooth-Lautsprecher wiedergegeben.
Mein erster Versuch, dies zu lösen, ist, die notwendigen Optionen für audioSession
wie folgt zur Verfügung zu stellen:
Aber das hat nicht funktioniert. Meine zweite Lösung, die ich denke, ist, die Musikausgabe erneut auf den Bluetooth-Lautsprecher umzuleiten.
Ich habe dazu recherchiert und diese Funktion gefunden: audioSession.setOutputDataSource
Ich kenne die Parameter, die dort übergeben werden, nicht wirklich.
Und ich bin mir nicht wirklich sicher, ob das Telefon / oder mein Code die Bluetooth-Verbindung in dem Moment, in dem ich die Videoaufnahme begonnen habe, deaktiviert oder die Wiedergabe einfach auf den Lautsprecher des Telefons umleitet.
UPDATE: Ich habe diese Zeile ausprobiert: // try audioSession.setMode(AVAudioSessionModeMoviePlayback)
und die Musik pausiert ein wenig und spielt wieder auf dem Bluetooth-Lautsprecher. Aber das Problem hier ist, dass das aufgenommene Video kein Audio hat.
UPDATE 2: Hätte diese Frage eine Lösung, wenn ich Ihnen meinen Code zur Verfügung stelle?
Ich werde weitermachen und versuchen, die ursprüngliche Frage zu beantworten. Von Apple s Dokumentation Ich gehe das:
%Vor%Parameter dataSource
Die Datenquelle für die Ausgabe der Audiositzung.
outError Bei der Eingabe ein Zeiger auf ein Fehlerobjekt. Wenn ein Fehler auftritt, wird der Zeiger auf ein NSError - Objekt gesetzt, das die Error. Wenn Sie keine Fehlerinformationen wünschen, geben Sie nil ein. hier
Diese Seite soll Ihnen helfen, herauszufinden, was die AV-Session-Datenquellenbeschreibung tut / zurückgibt, aber kurz zusammengefasst:
Sie erhalten Datenquellenbeschreibungen aus dem gemeinsam genutzten AVAudioSession-Objekt oder den AVAudioSessionPortDescription-Objekten, die den Eingabe- und Ausgabeports entsprechen. Nur eingebaute Mikrofonanschlüsse auf bestimmten Geräten unterstützen die Position, Ausrichtung und Richtcharakteristik. Wenn ein Port diese Features nicht unterstützt, ist der Wert seiner Eigenschaft dataSources gleich null. hier
Versuchen Sie Musik von Ihrer App zum Lautsprecher zu leiten (spielt die Musik?) oder kommt die Musik von einer anderen App und möchten Sie eine doppelte Ausgabe?
Bei der Fehlerüberprüfung können Sie sicherstellen, dass der Lautsprecher noch verfügbar ist. Verwenden Sie dazu beispielsweise Ausgabedatenquelle . Wenn es nill (null) zurückgibt, bedeutet dies, dass Sie nicht zwischen den Datenquellen wechseln können.
Es ist wahrscheinlich auch erwähnenswert, dass der Benutzer Ihnen die Erlaubnis zum Aufnehmen geben muss, aber ich bezweifle, dass dies das Problem ist, da Sie anscheinend bereits an einem Punkt aufgenommen haben, nur wenn es über das Telefon lief, nicht der Lautsprecher
Tags und Links ios swift avaudiosession