Logo androidermagazine.com
Logo androidermagazine.com

Replay: Der zunehmende Kampf um die Steuerung der Wiedergabe über Bluetooth

Anonim

Es ist das, was ich bei der Arbeit, zu Hause, im Bett, unter der Dusche und überall dazwischen benutze, um mich gesund und glücklich zu halten. Musik macht mich besser, und da Musik einen so großen Teil meiner Android-Erfahrung ausmacht, ist es zu einem langsamen Rückgang gekommen, dessen ich mich in den letzten Jahren und insbesondere in den letzten Monaten schmerzhaft bewusst geworden bin.

Manchmal schalte ich meinen Bluetooth-Kopfhörer ein, drücke auf Wiedergabe und nichts passiert. Und nichts passiert mehr als früher.

In meinen frühen Android-Tagen, als ich Soarin in der Tasche hatte (ja, ich habe mein Samsung Captivate Glide genannt) und mein erstes Paar Kinivo Bluetooth-Kopfhörer um meinen Hals hatte ich Google Play Music nicht geöffnet, ich musste nur drücken Spiel auf meinen Kopfhörern. Tatsächlich nahm ich ein Samsung Galaxy SII aus einer Schublade, startete es zum ersten Mal seit Monaten, koppelte Bluetooth-Kopfhörer damit und drückte die Wiedergabetaste. Und die Musik spielte.

Nicht so sehr auf den aktuellen Geräten in meinem Stall.

Das HTC 10 reagiert nur manchmal nicht auf Bluetooth-Kontrollen, dauerhafte Benachrichtigung für die Musik-App oder nicht. Es wäre mir lieber, wenn ich auf meinem Moto 360 oder am Telefon selbst spiele. Das HTC A9 ist genauso pingelig. Das Nexus 5X startet die Musik manchmal nicht mit der permanenten Benachrichtigung, aber manchmal ohne. Das Samsung S6 Edge wird wiedergegeben, aber manchmal wird statt der zuletzt aktiven Musik-App standardmäßig die vorinstallierte Musik-App verwendet.

Es gibt ein Wort, das sich hier wiederholt: manchmal. Das liegt daran, dass dieses Problem viele Variablen hat: Welches Android-Gerät verwenden Sie, welches Bluetooth-Gerät verwenden Sie, welche Android- und Bluetooth-Version haben Ihre Geräte, welche Musik-App versuchen Sie abzuspielen, in welcher Umgebung Sie sich gerade befinden, etc. Dies trägt zu einem scheinbar einfachen Problem bei, dass Tasten bei jedem Drücken nicht funktionieren.

Also, was ist hier eigentlich los? Nun, die Antwort wird ein wenig technisch.

Wenn Sie die Taste drücken, wird dies von Android interpretiert und über KeyEvents im System übertragen. Die nächste Taste Ihres Headsets wird als KEYCODE_MEDIA_NEXT über ein KeyEvent interpretiert und ausgegeben. Es gibt eine Vielzahl von Werten, die für verschiedene Tasten oder sogar für dieselbe Taste abgerufen werden können. Die Wiedergabetaste bei den meisten Headsets ist auch die Pausentaste, sodass die Taste je nach Gerät und aktuellem Status KEYCODE_MEDIA_PAUSE, KEYCODE_MEDIA_PLAY oder die viel wahrscheinlichere KEYCODE_MEDIA_PLAY_PAUSE zurückgeben kann. Übrigens: Wenn Sie jemals pause gedrückt haben und die Musik an einer anderen Stelle gestartet wurde, während das, was Sie sahen / hörten, angehalten wurde, ist dies das KeyEvent, das die Schuld trägt, da es von zwei Apps empfangen und bearbeitet wurde.

Nachdem die KeyEvents interpretiert wurden, müssen sie noch von einer Musik-App gehört werden, die über eine BroadcastReceiver-Absicht auf Medientasten wartet. Eine App kann schließlich nicht auf ein KeyEvent reagieren, wenn es nicht angezeigt wird. Wenn der Empfänger in einer App durch irgendetwas daran gehindert wird, Tastendruck zu empfangen, kann dies die Wiedergabesteuerung auf verschiedene Weise durcheinander bringen, einschließlich des oben beschriebenen zeitweiligen Problems. Wenn eine App ihren BroadcastReceiver zu schnell abmeldet, wenn sie den Audiofokus verliert (die Methode, mit der Android bestimmt, welche Apps zu einem bestimmten Zeitpunkt Audio abspielen können), hört sie möglicherweise nicht mehr auf, wenn Sie Ihre Musik anhalten, und hört nicht, wie die Taste gedrückt wird es wieder zu spielen beginnen. Aus diesem Grund ist es wichtig, dass Medien-Apps sowohl mit Audio Focus als auch mit ihrem BroadcastReceiver ordnungsgemäß umgehen, damit auch dann, wenn ein Gerät das erstere verloren hat, das letztere nicht verloren geht.

Dies hängt zum großen Teil davon ab, wie gut Ihre Musik-App programmiert ist und welche Medientasten von Ihrem Gerät gesendet werden, wenn Sie eine Taste Ihres Headsets drücken. Dies bedeutet auch, dass die Wiedergabesteuerungen, selbst wenn sie beim Kauf eines Geräts konsistent sind, durch App-Aktualisierungen oder Systemaktualisierungen beschädigt werden können, die ändern, wie schnell die Wiedergabe unterbrochen wird.

Bei Apps wie Google Play Music scheinen Updates immer häufiger zu werden. Während die meisten Pausen schnell behoben werden, kann es Monate dauern, bis andere behoben sind. Zeitweise auftretende Probleme, z. B., dass Ihre Musik über Bluetooth nicht ordnungsgemäß gestartet wird, können schwierig zu protokollieren und zu identifizieren sein, was eine mögliche Korrektur weiter verlangsamt.

Wenn Musik-Apps keinen Audio-Fokus haben und nicht als Vordergrunddienste ausgeführt werden (wenn die permanente Benachrichtigung für den Media-Player nicht vorhanden ist), besteht die Möglichkeit, dass das Android-System (genauer gesagt Doze) oder die sogenannte "Ressource" -speichernde "Apps können die App beenden, um Speicher für andere Aktivitäten freizugeben. In diesem Fall kann es sein, dass ein Schlag auf Play nichts bewirkt, da keine Empfänger geöffnet sind und auf Befehle warten.

Nun, genau wie es einige Dinge gibt, die Ihre Wiedergabesteuerung beschädigen könnten, gibt es auch Optionen, um dies zu beheben.

Die erste Lösung ist etwas extrem, aber eine der wenigen, die Benutzer heute auf ihren aktuellen Handys implementieren können, ohne dass die Software durch Root-Änderungen verändert wird. Mithilfe von Apps wie Tasker und AutoInput können wir den Tastendruck erkennen, die ursprüngliche KeyEvent-Aktion unterdrücken und dann einen spezielleren (und konsistenteren) Befehl ausführen, der direkt auf eine App abzielt. Anstatt dass die Wiedergabeschaltfläche ein allgemeiner Befehl zum Abspielen von Medien ist, der von Dutzenden von Mediendiensten abgerufen oder ignoriert werden kann, können wir ihn beispielsweise als Befehl zum Umschalten zwischen Wiedergabe und Pause für Google Play Music neu zuordnen, damit andere Apps dies nicht tun starte stattdessen.

Dies kann mühsam zu programmieren sein. Indem wir die ursprüngliche Aktion unterdrücken und ersetzen, unterbrechen wir die native Pause-Schaltfläche, die wir möglicherweise in anderen Apps wie YouTube oder Netflix verwenden möchten. Kurz gesagt, es ist keine gute Lösung für nicht technische Benutzer oder Benutzer, die eine Vielzahl von Medien-Apps verwenden.

Auf vielen Handys gibt es eine Reihe von Gesten- und Tastenaktionen, die Sie in den Einstellungen ein- und ausschalten können, z. B. zweimal tippen, um die Kamera zu aktivieren, oder zweimal Home / Power für die Kamera drücken. Das Hinzufügen von Bluetooth-Steuerelementen zu dieser Liste kann sich verlängern und erschweren. Wenn das Android-System das KeyEvent erkennt und an eine bestimmte App weiterleitet, anstatt ein generisches Signal an die Empfänger zu senden, die es hören (oder nicht hören), können wir die Konsistenz sicherstellen. Wir haben dies bereits bei Geräten gesehen, zum Beispiel beim Öffnen von Moto Assist, um eine bestimmte Musik-App zu aktivieren, wenn diese mit dem Bluetooth Ihres Autos verbunden ist.

Das Ändern der Art und Weise, wie Android mit Medientasten umgeht - und das Behandeln von Tasteneingaben insgesamt, da Bluetooth-Controller und -Tastaturen auf eigene Probleme stoßen -, kann zu so vielen neuen Problemen führen, wie sie gelöst werden. Berücksichtigt man jedoch die Anzahl der Orte, an denen Dinge möglich und möglich sind Bei dem derzeitigen System ist es möglicherweise sinnvoll, die Eier zu zerbrechen, um ein neues Omelett zuzubereiten.

Letztendlich möchten sich Benutzer im Alltag nicht mit wichtigen Befehlen, Empfängern und der App befassen, auf die sie sich gerade konzentrieren. Wir möchten, dass unser Fokus auf der Musik selbst liegt und wohin sie uns führt. Und wenn ich die Musik nicht einschalten kann, die mich beim ersten Versuch an lauten, überfüllten Orten gesund hält, bin ich kein glückliches Mädchen. Und ich wette, ich bin nicht der einzige.

Für Einkäufe über unsere Links können wir eine Provision verdienen. Mehr erfahren.