我們已經完全淘汰這個 SDK。YouTube 已停止支援或維護。請改用 YouTube IFrame Player API。
YouTube 行動版直播深層連結可讓 Android 應用程式直接透過行動裝置啟動 YouTube 直播。應用程式只需要提供進入點,例如可供使用者點選的按鈕,並透過 Android 意圖機制啟動行動直播流程。
範例
這個流程會顯示應用程式的深層連結,並連往 YouTube 應用程式深層連結 (使用者點選行動裝置直播設定畫面)。
- 首先,使用者必須設定串流、標題、隱私權模式和其他串流選項。
- 然後,使用者前往「縮圖相片」畫面,為直播影片設定縮圖圖片。
- 最後,使用者開始直播,並透過前置或後置鏡頭播送檢視畫面。
裝置需求
Android 裝置必須符合下列條件,才能正確支援 YouTube 直播和行動裝置直播深層連結:
- Android 版本:Marshmallow (API 23) 或以上版本
- 相機:至少一部配備至少 30Hz 的 720p 相機
- 麥克風:內建麥克風
- 音訊編碼器:硬體加速音訊編碼器,能將 8 位元 PCM 單聲道音訊編碼為 44.1KHz 以上的 AAC
- 影片編碼器:硬體加速影片編碼器,可將 720P 原始影片編碼為 H.264/AVC (30Hz 以上) 編碼
- 已安裝 YouTube 應用程式:13.02 以上版本
行動裝置直播意圖規格
如要連結至 YouTube 行動版直播流程,您的 Android 應用程式會啟動意圖。意圖會啟動 YouTube 應用程式的活動,藉此啟動直播程序。
意圖格式
行動裝置直播意圖會使用自訂的 Action
字串,前往 YouTube 應用程式中的直播建立活動,同時也指定 YouTube 行動應用程式的套件名稱。
意圖額外項目
YouTube 應用程式設定流程會處理串流設定。下列意圖額外會設定與直播相關聯的參數:
參數 | |
---|---|
意圖。EXTRA_REFERRER | 必備。此參數會指定代表啟動即時活動應用程式的 URI。這個值必須遵循 android-app: scheme 格式的套件名稱。這個值可讓你進行準確的歸因和會計。 |
意圖。EXTRA_SUBJECT | (選用) 這個參數提供直播內容的文字說明。這會以 String 的形式,放在意圖額外套件中。這個值可用來為含有品牌訊息的串流加上註解,例如「來自 DEVICE 的直播」。 |
啟動直播流程
步驟 1:確認支援
客戶必須先確認裝置已安裝 YouTube 應用程式,且 YouTube 應用程式支援直播功能,才能啟動行動裝置直播意圖。以下程式碼範例定義這兩種做法。
canResolveMobileLiveIntent
方法會驗證裝置是否支援行動直播意圖。validateMobileLiveIntent
會在if-else
陳述式的情境中呼叫canResolveMobileLiveIntent
方法。- 如果裝置支援「意圖」,裝置就可啟動直播流程。
- 如果裝置不支援「意圖」,裝置可能會提示使用者安裝或升級 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); }