此 SDK 已完全废弃。YouTube 不再支持或不再维护该视频。请改用 YouTube iframe API。
借助 YouTube 移动直播深层链接,Android 应用可以直接在移动设备上进行 YouTube 直播。应用只需要提供一个入口点(例如一个可供用户点击的按钮),该按钮可以通过 Android intent 机制启动移动直播流程。
示例
此流程显示了深层链接到 YouTube 应用(其中用户进入移动直播设置屏幕)的用户体验。
- 首先,用户配置直播活动,设置标题、隐私模式和其他直播选项。
- 然后,用户前往缩略图照片屏幕,为数据流设置缩略图。
- 最后,用户开始直播并通过前置摄像头或后置摄像头广播视图。
![](https://cdn.statically.io/img/developers.google.com/static/youtube/android/live/images/mobile-live-intent1.png?hl=zh-cn)
![](https://cdn.statically.io/img/developers.google.com/static/youtube/android/live/images/mobile-live-intent2.png?hl=zh-cn)
![](https://cdn.statically.io/img/developers.google.com/static/youtube/android/live/images/mobile-live-intent3.png?hl=zh-cn)
设备要求
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); }