YouTube 行動直播深層連結可讓 Android 應用程式直接透過行動裝置啟動 YouTube 直播。應用程式只需提供一個進入點,例如使用者可點選的按鈕,即可透過 Android 意圖機制啟動行動直播流程。
範例
這個流程顯示應用程式連結至 YouTube 應用程式的使用者體驗,使用者會前往「行動直播設定」畫面。
- 首先,使用者會設定串流,包括標題、隱私權模式和其他串流選項。
- 然後,使用者前往「縮圖相片」畫面,設定串流的縮圖。
- 最後,使用者開始直播,並透過前置或後置鏡頭播放畫面。
裝置需求
Android 裝置必須符合下列規定,才能正確支援 YouTube 直播和行動版直播深層連結:
- Android 版本:Marshmallow (API 23) 以上版本
- 相機:至少有一台相機可錄製 720p 影片,且每秒至少 30 格
- 麥克風:裝置內建麥克風
- 音訊編碼器:硬體加速音訊編碼器,能夠將 8 位元的 PCM 單聲道音訊編碼至 AAC (44.1KHz 以上)
- 影片編碼器:硬體加速視訊編碼器能夠將 720P 原始影片編碼為 H.264/AVC 及 30Hz 以上
- 已安裝 YouTube 應用程式:13.02 以上版本
行動裝置直播意圖規格
為了連結 YouTube 行動裝置直播流程,您的 Android 應用程式會啟動 Intent。意圖會在 YouTube 應用程式中啟動活動,藉此啟動直播程序。
意圖格式
行動裝置直播意圖會使用自訂的 Action
字串前往 YouTube 應用程式中的直播建立活動,也會指定 YouTube 行動應用程式的套件名稱。
意圖額外資料
YouTube 應用程式設定流程會處理串流設定。下列 Intent 額外設定可設定與直播相關聯的參數:
參數 | |
---|---|
意圖。EXTRA_REFERRER | 必填。這個參數會指定代表啟動直播活動的應用程式活動 URI。這個值必須採用 android-app: scheme 格式,並附上套件名稱。這個值可讓您準確歸因和計算。 |
Intent.EXTRA_SUBJECT | (選用) 這個參數提供實況轉播的文字說明。並以 String 的形式放入 Intent 額外項目套件中。這個值可用於在串流中加上品牌訊息註解,例如「透過裝置 DEVICE 進行直播」。 |
啟動直播流程
步驟 1:檢查支援情形
客戶應先確認行動裝置上已安裝 YouTube 應用程式,且 YouTube 應用程式版本支援直播,以便確認行動直播意圖是否可啟動。以下程式碼範例定義了兩種方法來執行這項操作:
canResolveMobileLiveIntent
方法會驗證裝置是否支援行動裝置直播意圖。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:啟動直播活動
如要啟動直播流程,用戶端應用程式會建立並啟動意圖,如以下程式碼範例所示:
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); }