此 SDK 已完全弃用。此 API 不再由以下供应商提供支持或维护:
YouTube。请使用
YouTube iFrame Player API。
借助 YouTube 移动直播深层链接,Android 应用可以直接从移动设备发起 YouTube 直播。应用只需提供一个入口点(例如用户可以点击的按钮),用于通过 Android Intent 机制启动移动直播流程。
示例
此流程显示了深层链接到 YouTube 应用(用户会进入“移动直播设置”屏幕)的应用的用户体验。
- 首先,用户需要配置直播,设置标题、隐私模式和其他直播选项。
- 然后,用户导航到“缩略图照片”屏幕,为数据流设置缩略图。
- 最后,用户开始直播,并从前置或后置摄像头广播视图。
设备要求
Android 设备必须满足以下要求才能正确支持 YouTube 直播和移动直播深层链接:
- Android 版本:Marshmallow (API 23) 或更高版本
- 摄像头:至少有一个摄像头能够至少录制 30Hz 的 720p 画面
- 麦克风:板载麦克风
- 音频编码器:硬件加速音频编码器,能够将 8 位 PCM 单声道音频编码为 44.1KHz 或更高分辨率的 AAC
- 视频编码器:能以 30Hz 或更高的频率将 720P 原始视频编码为 H.264/AVC 的硬件加速视频编码器
- 已安装 YouTube 应用:13.02 或更高版本
移动实时 intent 规范
为了关联到移动版 YouTube 直播流程,您的 Android 应用会启动一个 Intent。Intent 通过在 YouTube 应用中启动 Activity 来启动直播流程。
intent 格式
移动直播 intent 使用自定义 Action
字符串转到 YouTube 应用中的直播创建 activity。它还指定了移动版 YouTube 应用的软件包名称。
intent extra
YouTube 应用设置流程会处理视频流配置。以下 intent extra 用于设置与直播关联的参数:
Params | |
---|---|
Intent.EXTRA_REFERRER | 必需。此参数指定一个 URI,它表示启动实时流式传输 Activity 的应用。此值必须遵循 android-app: scheme 格式以及软件包名称。该值可实现准确的归因和核算。 |
Intent.EXTRA_SUBJECT | 可选。此参数提供直播活动的文字说明。它将作为 String 放入 intent extra 捆绑包中。该值可用于为视频流添加品牌信息(例如“Streamed live from DEVICE”)。 |
启动直播流程
第 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 步:启动直播 activity
为了启动直播流程,您的客户端应用需要创建并启动一个 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); }