此 SDK 已完全废弃。YouTube 不再支持或不再维护该视频。请改用 YouTube iframe API。
借助 YouTube 移动直播深层链接,Android 应用可以直接在移动设备上进行 YouTube 直播。应用只需要提供一个入口点(例如一个可供用户点击的按钮),该按钮可以通过 Android intent 机制启动移动直播流程。
示例
此流程显示了深层链接到 YouTube 应用(其中用户进入移动直播设置屏幕)的用户体验。
- 首先,用户配置直播活动,设置标题、隐私模式和其他直播选项。
- 然后,用户前往缩略图照片屏幕,为数据流设置缩略图。
- 最后,用户开始直播并通过前置摄像头或后置摄像头广播视图。
设备要求
Android 设备必须满足以下要求才能正确支持 YouTube 直播和移动直播深层链接:
- Android 版本:Marshmallow(API 23)或更高版本
- 摄像头:至少一个摄像头能够以至少 30Hz 的分辨率录制 720p
- 麦克风:车载麦克风
- 音频编码器:能够以 44.1KHz 或更高的频率将 8 位 PCM 单声道音频编码为 AAC 的硬件加速音频编码器
- 视频编码器:硬件加速视频编码器,能够以 30Hz 或更高的频率将 720P 原始视频编码为 H.264/AVC
- 已安装 YouTube 应用:13.02 版或更高版本
移动直播 intent 规范
为了关联到移动版 YouTube 直播流程,您的 Android 应用会启动 Intent。intent 通过在 YouTube 应用中启动 Activity 来启动直播流程。
intent 格式
Mobile Live intent 使用自定义 Action
字符串导航到 YouTube 应用中的直播创建 Activity。它还会为移动版 YouTube 应用指定软件包名称。
intent extra
YouTube 应用设置流程会处理视频流配置。以下 intent extra 用于设置与直播关联的参数:
参数 | |
---|---|
意向。EXTRA_REFERRER | 强制要求。此参数用于指定代表启动直播活动的应用的 URI。此值必须遵循 android-app: scheme 格式和软件包名称。该值可实现准确的归因和核算。 |
Intent.EXTRA_SUBJECT | 可选。此参数用于提供直播的文字说明。它以 String 的形式位于 intent extra 包中。该值可用于为直播添加品牌信息注释,例如“从设备直播”。 |
启动直播流程
第 1 步:查看支持服务
您的客户首先应验证设备上是否安装了 YouTube 应用以及 YouTube 应用版本是否支持直播,从而可以启动移动直播 intent。为此,以下代码示例定义了两种方法:
canResolveMobileLiveIntent
方法会验证设备是否支持移动直播 intent。validateMobileLiveIntent
会在if-else
语句的上下文中调用canResolveMobileLiveIntent
方法。- 如果设备支持 intent,则可以启动直播流程。
- 如果设备不支持 intent,则可以提示用户安装或升级 YouTube 应用。
private boolean canResolveMobileLiveIntent(Context context) { Intent intent = new Intent("com.google.android.youtube.intent.action.CREATE_LIVE_STREAM") .setPackage("com.google.android.youtube"); PackageManager pm = context.getPackageManager(); ListresolveInfo = pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); return resolveInfo != null && !resolveInfo.isEmpty(); } private void validateMobileLiveIntent(Context context) { if (canResolveMobileLiveIntent(context)) { // Launch the live stream Activity } else { // Prompt user to install or upgrade the YouTube app } }
第 2 步:启动直播活动
如需启动直播流程,您的客户端应用需要创建并启动 intent,如以下代码示例所示:
private Intent createMobileLiveIntent(Context context, String description) { Intent intent = new Intent("com.google.android.youtube.intent.action.CREATE_LIVE_STREAM") .setPackage("com.google.android.youtube"); Uri referrer = new Uri.Builder() .scheme("android-app") .appendPath(context.getPackageName()) .build(); intent.putExtra(Intent.EXTRA_REFERRER, referrer); if (!TextUtils.isEmpty(description)) { intent.putExtra(Intent.EXTRA_SUBJECT, description); } return intent; } private void startMobileLive(Context context) { Intent mobileLiveIntent = createMobileLiveIntent(context, "Streaming via ..."); startActivity(mobileLiveIntent); }