Wie fügen Sie der Google Cast App Standard-Mediensteuerelemente hinzu?

8

Ich entwickle eine benutzerdefinierte Google Cast-Empfänger-App mit WebTorrent ( Ссылка , Ссылка ) und die Google Cast-Sender-App mit JavaScript (Chrome) SDK.

Die Idee meiner App ist das Senden einer Torrent-ID (Magnet-URI wie magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d oder HTTP / HTTPS URL an eine * .torrent-Datei wie https://webtorrent.io/torrents/sintel.torrent ) vom Google Cast-Sender an den Google Cast-Empfänger und mit WebTorrent in Google Cast Empfänger, um die Medien (Video oder Audio) vom Torrent anzuzeigen.

Beachten Sie, dass die Torrent-ID keine direkte URL zur Mediendatei ist.

Jetzt verwende ich den Google Cast-Namespace und messageBus, um die Torrent-ID zu senden und zu empfangen.

Die WebTorrent-API bietet zwei Möglichkeiten, das Medium anzuzeigen:

  • Hängen Sie es mit file.appendTo an das DOM an: Ссылка
  • rendern direkt in ein gegebenes Element (oder CSS-Selektor) mit file.renderTo : Ссылка

Hier ist der Code meines Empfängers:

%Vor%

Hier ist der Code meines Absenders:

%Vor%

Das Problem: Der Empfänger verarbeitet die Torrent-ID vom Absender und die Video-Wiedergabe wie erwartet. Die offizielle Google Cast-App oder die offizielle Google Cast-Erweiterung für Chrome zeigt jedoch keine standardmäßigen Mediensteuerelemente zum Abspielen von Videos zum Anhalten, Stoppen, Suchen usw. an.

Dies ist, was ich habe (dies ist ein Screenshot des standardmäßig integrierten Modaldialogs für Google Cast in der neuesten Version von Google Chrome):

Das möchte ich erreichen (dies ist ein Screenshot des standardmäßigen modalen Dialogfelds für Google Cast in der neuesten Version von Google Chrome):

Hinzufügen

%Vor%

für

<video autoplay id='media' />

Element hilft nicht.

Soll ich dem Absender und / oder Empfänger etwas hinzufügen, um für alle Absender die Standard-Mediensteuerung für <video autoplay id='media' /> hinzuzufügen?

Vielleicht gibt es eine andere Möglichkeit, eine Torrent-ID zu senden und zu empfangen, ohne den Google Cast-Namespace und messageBus zu verwenden?

UPD

Sieht so aus, als hätte ich die Wurzel meines Problems gefunden ...

Wie können Standard-Media-Steuerelemente für vorhandene Videos im Receiver aktiviert werden?

Zum Beispiel, die Empfänger-App hat bereits Video:

%Vor%

Wie können Standard-Media-Steuerelemente aktiviert werden - Schaltflächen "Play / Pause", Fortschrittsbalken (für alle Absender wie offizielle Google Cast-Erweiterung für Chrome) für dieses Video?

Sieht so aus, als würde der folgende Code nicht hinzugefügt:

%Vor%

Hier ist der vollständige Quellcode des Empfängers:

%Vor%

UPD2:

Sieht so aus, als wäre es möglich, eine beliebige Zeichenfolge (die Torrent-ID in meinem Fall) anstelle der Medien-URL in chrome.cast.media.MediaInfo zu verwenden und den Medien-Namespace anstelle von benutzerdefiniertem Namespace und benutzerdefiniertem Nachrichtenbus zu verwenden (dh ohne Ссылка und Kategorien und Ссылка ):

%Vor%

Aber wie geht es in diesem Fall mit dem Empfänger?

    
Fluorescent Hallucinogen 26.04.2016, 11:07
quelle

1 Antwort

1

Tatsächlich gibt es eine Google Cast UX-Richtlinie, in der festgelegt wird, dass die Absenderanwendung eine Cast-Schaltfläche auf oberster Ebene bereitstellen muss. Es gibt drei Möglichkeiten, eine Cast-Schaltfläche zu unterstützen, die in Android Sender-App-Entwicklung

ausführlich besprochen wurden
  • Verwenden des MediaRouter ActionBar-Anbieters: android.support.v7.app.MediaRouteActionProvider
  • Verwenden der MediaRouter Cast-Schaltfläche: android.support.v7.app.MediaRouteButton
  • Entwickeln einer benutzerdefinierten Benutzeroberfläche mit den MediaRouter-APIs und MediaRouter.Callback

Um die Standard-Mediensteuerung anzuzeigen, sobald das Medium wiedergegeben wird, kann die Senderanwendung die Medienwiedergabe mithilfe der RemoteMediaPlayer-Instanz steuern. Schritte und Beispiele finden Sie in der Dokumentation.

Eine umfassende Auflistung aller Klassen, Methoden und Ereignisse im Google Cast Android SDK finden Sie unter Google Cast-API-Referenz für Android .

    
Teyam 27.04.2016 15:12
quelle