我打算使用名为" Casty" 的this小型库(基于 Google Cast V3 构建)来实现视频广播功能在我的应用程序中。
我希望像this一样
投射YouTube视频以下是代码,我已经复制了(这应该通过Chromecast通过某些基于Web的视频网址在Android TV上播放视频):
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();
}
}
注意:我还没有检查过,因为我没有测试Casting功能所需的东西......比如 Chromecast和TV
我的要求
而不是某些Web based Video URL
,如果我想使用相同的库投射Youtube视频,我希望我的code should look
喜欢或不这样做:
return new MediaData.Builder("https://www.youtube.com/watch?v=RKjUPQCXnsM")
我脑子里有两个问题:
我的想法:我个人认为,我不需要单独使用播放和暂停按钮来控制媒体播放(因为YouTube会自行处理) - 我是对还是错?
createSampleMediaData()
方法那么您的想法在投射YouTube视频时我们的MainActivity.java
应如何?
糟糕的是,我没有电视,否则,我可以尝试多次尝试。
答案 0 :(得分:0)
由于android tv emulator cannot be use to test the cast functionality,因此无需对设备进行测试即可。您可以查看有关Get Started的此文档,以熟悉Cast API功能。您可能还想查看此related SO post,其中涉及播放网络视频以投射API。还有一个文档,说明支持的video formats列表是什么。
希望这有帮助。