Google Cast是一项技术,允许用户将在线内容发送到连接到电视的设备(例如Chromecast或Android TV)。 内容在电视上可用后,用户可以从其移动设备或计算机上对其进行控制。
在本教程中,您将学习如何使用Cast SDK v3创建基本的支持Cast的Android应用程序,该应用程序在2016 Google I / O大会上宣布。
投放控制台设置
Google Cast围绕两个组件构建:接收者(本质上是一个显示您的内容的投射设备上显示的网页)和发送者(它是请求媒体并控制播放的客户端程序)。
在创建发送方应用程序之前,您需要在Google Cast开发人员控制台上注册一个帐户,然后创建并配置新的接收方应用程序。 要注册帐户,您需要一次性支付5美元的费用。 创建帐户后,您可以单击红色的“ 添加新应用程序”按钮来创建新的接收方应用程序。
接下来,您将拥有三个选项:“自定义接收器”,“样式媒体接收器”和“远程显示接收器”。 为简单起见,在本教程中,您将使用样式媒体接收器。
![新的接收器应用程序类型](https://cms-assets.tutsplus.com/uploads/users/798/posts/26893/image/Screen%20Shot%202016-09-11%20at%2010.20.10%20AM.png)
在下一个屏幕上,您将能够为接收器选择一些基本设置,例如应用程序名称,CSS样式表的可选URL(用于自定义接收器的外观)以及启用访客模式和音频的功能。仅铸造。
![新型媒体接收器的设置选项](https://i-blog.csdnimg.cn/blog_migrate/9e2952cbfe83b76c015c4ce48a421c4f.png)
按下蓝色的“ 保存”按钮后,将显示一个屏幕,向您显示新接收器应用程序的基本详细信息。 您会注意到,该屏幕还包含新的应用程序ID 。 您将需要在Android应用程序中使用此值。
![该屏幕显示了新创建的接收器的信息](https://cms-assets.tutsplus.com/uploads/users/798/posts/26893/image/Screen%20Shot%202016-09-11%20at%2010.20.36%20AM.png)
值得注意的是,即使创建了接收方应用程序,发送方应用程序也可能需要花费几个小时才能发现它。
为了进行测试,您需要将至少一台铸造设备列入白名单。 您可以从Google Cast开发人员控制台中执行此操作,方法是点击红色的添加新设备按钮。 在出现的屏幕上,您可以输入设备的序列号和说明,将其列入白名单,以便使用接收器应用程序进行测试。
![将物理铸造设备列入白名单的对话框](https://i-blog.csdnimg.cn/blog_migrate/8d91a29c44d42084e7bf406e5c2ba5d6.png)
此时,您应该已经创建了一个接收器,并且将测试设备列入了白名单,因此您都可以开始构建Android发送器应用程序了。 在Play商店上创建并发布应用程序后,您将需要返回Cast开发者控制台以发布您的接收方,从而允许将任何投射设备与您的发送方应用程序一起使用。
Android设置
您需要在Android应用程序中做的第一件事是在build.gradle文件中的dependencies
节点下包括Cast Framework和Media Router库。
compile 'com.android.support:mediarouter-v7:24.1.1'
compile 'com.google.android.gms:play-services-cast-framework:9.4.0'
接下来,您将想要在创建接收器时给您的应用程序ID存储在strings.xml文件中。
<string name="cast_app_id">(your ID goes here)</string>
设置过程的最后一步是包括应用程序的Internet权限。 打开AndroidManifest.xml,并在application
节点之前添加以下行。
<uses-permission android:name="android.permission.INTERNET" />
设置完成后,您可以继续在应用程序中添加媒体路由按钮。
显示路由按钮并连接到Cast设备
路由按钮是应用程序工具栏中的图标,通常表示应用程序支持用户投射。
![媒体路由器按钮](https://i-blog.csdnimg.cn/blog_migrate/2c0f0c2e7e8d87deceba47f70380eea5.png)
为了使此按钮显示在应用程序的Toolbar
,最简单的方法是将其包含在Activity
的菜单XML文件中(也建议将其放入应用程序的每个Activity
中)。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/media_route_menu_item"
android:title="Cast"
app:actionProviderClass="android.support.v7.app.MediaRouteActionProvider"
app:showAsAction="always" />
</menu>
接下来,您将需要在Activity
的onCreateOptionsMenu
方法中初始化此新MenuItem
。
@Override public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu_main, menu);
mMediaRouterButton = CastButtonFactory.setUpMediaRouteButton(getApplicationContext(),
menu,
R.id.media_route_menu_item);
return true;
}