2017-08-14 1 views
0

Ich plane this kleine Bibliothek "Casty" (Guss V3 baut auf Google) genannt verwenden Video Casting Funktionalität in meiner Anwendung zu implementieren.Video zu TV Cast MediaRouteButton mit

Ich möchte wie nur YouTube Video (s) erreichen Gießen this ein

Hier ist der Code, ich habe kopiert (dies sollte play a Video auf Android TV via Chrome über einige Web basierte Video URL):

public class MainActivity extends AppCompatActivity { 
    private Button playButton; 
    private Casty casty; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     casty = Casty.create(this) 
       .withMiniController(); 
     setUpPlayButton(); 
     setUpMediaRouteButton(); 
    } 

    private void setUpPlayButton() { 
     playButton = (Button) findViewById(R.id.button_play); 
     playButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       casty.getPlayer().loadMediaAndPlay(createSampleMediaData()); 
      } 
     }); 
     casty.setOnConnectChangeListener(new Casty.OnConnectChangeListener() { 
      @Override 
      public void onConnected() { 
       playButton.setEnabled(true); 
      } 

      @Override 
      public void onDisconnected() { 
       playButton.setEnabled(false); 
      } 
     }); 
    } 

    private void setUpMediaRouteButton() { 
     MediaRouteButton mediaRouteButton = (MediaRouteButton) findViewById(R.id.media_route_button); 
     casty.setUpMediaRouteButton(mediaRouteButton); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     casty.addMediaRouteMenuItem(menu); 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    private static MediaData createSampleMediaData() { 
     return new MediaData.Builder("http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4") 
       .setStreamType(MediaData.STREAM_TYPE_BUFFERED) 
       .setContentType("videos/mp4") 
       .setMediaType(MediaData.MEDIA_TYPE_MOVIE) 
       .setTitle("Sample title") 
       .setSubtitle("Sample subtitle") 
       .addPhotoUrl("https://peach.blender.org/wp-content/uploads/bbb-splash.png?x11217") 
       .build(); 
    } 
} 

HINWEIS: ich habe es noch nicht geprüft, weil ich die Dinge nicht diejenigen, erforderlich sind Casting-Funktionalität zu testen ... wie Chrome und TV

Mein REQUIREMENT

Statt einiger Web based Video URL, was, wenn ich möchte Guss Youtube Video gleiche lib verwenden, ich hoffe, meine code should look so oder nicht:

return new MediaData.Builder("https://www.youtube.com/watch?v=RKjUPQCXnsM") 

ich habe zwei Fragen in meinem Kopf:

1. Muss ich die Schaltflächen Wiedergabe und Pause (im Falle eines YouTube-Videos) beibehalten?

Was ich denke: Ich persönlich denke, ich brauche nicht spielen zu verwenden und Pause-Tasten separat Medienwiedergabe zu steuern (weil YouTube dies selbst behandeln würde) - Bin ich richtig oder falsch?

  1. Wenn ich recht habe, dann, wo und wann ich createSampleMediaData verwenden müssen() -Methode

Also, was Sie denken, wie unsere MainActivity.java aussehen sollte wie im Falle eines YouTube-Videos?

The bad thing is, I don't have TV, otherwise, I can give many tries to get this done. 

Antwort

0

Dies wird ohne Prüfung auf Geräte hart sein, da android tv emulator cannot be use to test the cast functionality. Sie können dieses Dokument über Get Started lesen, um sich mit den Cast API-Funktionen vertraut zu machen. Vielleicht möchten Sie auch diese related SO post überprüfen, die über das Abspielen von Web-Videos zum Umwandeln von API spricht. Es gibt auch ein Dokument darüber, was die Liste video formats unterstützt, die unterstützt werden.

Hoffe, das hilft.