逐步:玩家管理

本文件提供玩家管理 API 基本操作的實際操作介紹。

簡介

在本分步指南中,您將執行以下任務:

  • 創建一個球員
  • 更新播放器以自動播放視頻
  • 通過添加插件來自定義玩家
  • 顯示播放器的配置

開始使用

本分步指南採用的方法是使用curl語句與Player Service API通信。在命令行中使用curl工具,以使用URL語法傳輸數據。有關 curl 的更多信息可以從 https://curl.haxx.se獲得。

為了簡單起見,您當然不必像本分步指南中那樣使用curl。當然,您可以使用自己喜歡的語言與API進行通信。看看播放器管理示例的設置演示瞭如何使用基本身份驗證,AJAX和JavaScript編寫一些用於執行基本任務(例如創建播放器,顯示所有播放器,刪除播放器等)的微型應用。

開始使用API之前,需要採取一些初步步驟。這些是:

  • 登入工作室。如果您有多個帳戶,請使用下拉菜單選擇要在其中創建新玩家的帳戶。為了使憑據系統正常運行,您需要對此帳戶擁有管理員權限。如果不確定用戶是否具有管理員權限,請轉到“用戶設置”頁面以查看列出的用戶及其角色。
  • 在Studio中,請確保已選擇從模塊列表中。您可以在頁面左上角的帳戶名稱下方復制您的帳戶ID
    要復制的帳戶ID
  • 在命令行中,輸入以下內容以將“帳戶ID”值分配給環境變量:
            export ACCOUNT_ID=YourAccountID
            
            
  • 身份驗證將通過在curl語句中提供您的帳戶電子郵件地址來處理,然後API會提示您輸入密碼。由於電子郵件地址將被頻繁使用,因此也請將該值分配給環境變量:
            export EMAIL=YourEmailAddress
            
            

現在您可以開始使用API。

創建一個球員

現在,您可以通過調用播放器管理API來創建播放器。有關API調用的詳細信息,請參見播放器管理API概述文件。建議您將以下curl語句複製並粘貼到命令行。

以下步驟可幫助您創建播放器。

  1. 第一個curl語句創建播放器並分配名稱和描述。在命令行上粘貼此語句後,按輸入,系統將提示您輸入密碼。
            curl \
              --header "Content-Type: application/json" \
              --user $EMAIL \
              --request POST \
              --data '{
                "name": "My New Player Name v2",
                "description": "My new player description"
                }' \
              https://players.api.brightcove.com/v1/accounts/{account_id}/players
            

    您將看到服務器以JSON格式返迴響應數據:

            {
              "id": "S1qN4xeG7",
              "url": "https://players.brightcove.net/1507807800001/S1qN4xeG7_default/index.html",
              "embed_code": "<iframe src='//players.brightcove.net/1507807800001/S1qN4xeG7_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
              "embed_in_page": "https://players.brightcove.net/1507807800001/S1qN4xeG7_default/in_page.embed",
              "preview_url": "https://preview-players.brightcove.net/v2/accounts/1507807800001/players/S1qN4xeG7/preview/embeds/default/master/index.html",
              "preview_embed_in_page": "https://preview-players.brightcove.net/v2/accounts/1507807800001/players/S1qN4xeG7/preview/embeds/default/master/in_page.embed",
              "preview_embed_code": "<iframe src='//preview-players.brightcove.net/v2/accounts/1507807800001/players/S1qN4xeG7/preview/embeds/default/master/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>"
            }
            
  2. 使用以下一個(或全部)值查看播放器(目前,播放器中沒有視頻,但是您可以使用Studio使用新創建的播放器來發布視頻):
    • 複製url 瀏覽器中查看播放器。
    • 複製embed_code 進入HTML頁面,以在iframe中查看播放器。為了使它正常運行,必須從實際的HTTP服務器提供包含iframe的頁面。
    • embed_in_page 該功能的使用方法在高級(頁內)嵌入代碼的可用選項文件。

視頻雲視頻

當然,您可以使用視頻雲庫中的視頻創建播放器。而不是使用media JSON數據部分中,您可以使用video_cloud 部分。下面的 curl 語句顯示了使用視頻雲視頻 ID 的播放器創建。

        curl \
          --header "Content-Type: application/json" \
          --user $EMAIL \
          --request POST \
          --data '{
            "name": "Video Cloud CURL 10 March",
            "configuration": {
              "video_cloud": {
                "video": "4093372393001"
              }
            }
          }' \
        https://players.api.brightcove.com/v2/accounts/{account_id}/players
        

從邏輯上講,該響應等效於使用以下命令創建播放器時的響應媒體/來源/ src如上圖所示。

        {
        "id": "HJyMlHiuZ",
        "url": "https://players.brightcove.net/1507807800001/HJyMlHiuZ_default/index.html",
        "embed_code": "<iframe src="//players.brightcove.net/1507807800001/HJyMlHiuZ_default/index.html" allowfullscreen="" webkitallowfullscreen="" mozallowfullscreen=""></iframe>",
        "embed_in_page": "https://players.brightcove.net/1507807800001/HJyMlHiuZ_default/in_page.embed",
        "preview_url": "https://preview-players.brightcove.net/v1/accounts/1507807800001/players/HJyMlHiuZ/preview/embeds/default/master/index.html",
        "preview_embed_code": "<iframe src="//preview-players.brightcove.net/v1/accounts/1507807800001/players/HJyMlHiuZ/preview/embeds/default/master/index.html" allowfullscreen="" webkitallowfullscreen="" mozallowfullscreen=""></iframe>"
        }
        
        

您可以瀏覽返回的URL值並更改index.htmlconfig.json。對於由上面的curl語句創建的播放器,您將看到以下內容:

        {
          "account_id": "1507807800001",
          "compatibility": true,
          "embed_id": "default",
          "player": {
            "template": {
              "name": "single-video-template",
              "version": "6.5.0"
            }
          },
          "player_id": "HJyMlHiuZ",
          "player_name": "Video Cloud CURL 10 March",
          "updated_at": "2017-08-23T17:48:55.622Z",
          "video_cloud": {
            "policy_key": "BCpkADawqM2FnBS3InxzDxU4bd4otJdHKvexlXfhs_XgSj3jmBHAsV2xANIvSPd4KiakMbiQM5oYJPopOcJD7vNnPWGPGsnXCO3_ZGdjPmur53WV_a4JUPWHCLt5oiyekN44i24jZzHMB6hT",
            "video": "4093372393001"
          }
        }
        

policy_key 會自動添加到播放器的配置中。這是使用Policy API創建的,它將允許對播放器進行特殊限制以訪問不同的視頻。換句話說,策略密鑰控制何時可以觀看哪些視頻。

更新玩家

現在,您已經執行了創建播放器的基本操作。接下來,您將學習如何對播放器進行簡單的更新。在這種情況下,如果瀏覽器允許,您將設置播放器以在播放器中自動播放視頻。

  1. 在播放器創建返回的JSON中,id 值已顯示。複製到一個PLAYER_ID 環境變量。
            export PLAYER_ID=YourPlayerID
            
            
  2. 要更新播放器,您將使用HTTP PATCH 方法。您將發送數據以更新播放器。您將設置autoplay選擇true。複製並粘貼以下curl語句並執行它。
            curl \
              --header "Content-Type: application/json" \
              --user $EMAIL \
              --request PATCH \
              --data '{
                "autoplay": true
              }' \
            https://players.api.brightcove.com/v2/accounts/{account_id}/players/{player_id}/configuration
            
  3. 檢查以確保服務器返回的數據包括id preview_url preview_embed_code 以下JSON格式的值:
            {
              "id": "S1qN4xeG7",
              "preview_url": "https://preview-players.brightcove.net/v2/accounts/1507807800001/players/S1qN4xeG7/preview/embeds/default/master/index.html",
              "preview_embed_in_page": "https://preview-players.brightcove.net/v2/accounts/1507807800001/players/S1qN4xeG7/preview/embeds/default/master/in_page.embed",
              "preview_embed_code": "<iframe src='//preview-players.brightcove.net/v2/accounts/1507807800001/players/S1qN4xeG7/preview/embeds/default/master/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>"
            }
            
  4. 使用preview_url 要么preview_embed_code 值以查看播放器配置中的更改。您將看到自動播放為真。
  5. 現在,您將發布播放器以將其推到正確的位置,以供用戶查看。輸入下列指令:
            curl \
            --header "Content-Type: application/json" \
            --user $EMAIL \
            --request POST \
            https://players.api.brightcove.com/v2/accounts/{account_id}/players/{player_id}/publish
            
            

    播放器發布後,您將擁有與預覽版本不同的播放器。發布版本與預覽版本在以下方面有所不同:

    • 將JavaScript和CSS縮小,連接並直接內嵌到播放器中。
    • 生成海報圖像的低分辨率版本,並將其內嵌到頁面中,以改善請求建立時間較長的網絡(即蜂窩數據網絡)上的感知加載時間。
    • 保存播放器的先前版本,以便在更新生效後發現問題時可以將其恢復。
  6. 檢查以確保來自發布播放器的JSON響應如下所示:
            {
            "id": "S1qN4xeG7",
            "url": "https://players.brightcove.net/1507807800001/S1qN4xeG7_default/index.html",
            "embed_code": "<iframe src='//players.brightcove.net/1507807800001/S1qN4xeG7_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
            "embed_in_page": "https://players.brightcove.net/1507807800001/S1qN4xeG7_default/in_page.embed"
            }
            
            
  7. 使用播放器實現之一來確保您發布的播放器正常運行。

自定義玩家

您可以使用插件自定義播放器。您可以了解如何在播放器中包含預先存在的插件,或在播放器中構建自己的插件。一步步:外掛程式開發

在這種情況下,您將使用一個非常簡單的預先存在的插件在視頻上覆蓋一條短信。以下是創建HTML段落標籤的插件的代碼。注意:將一個類名和文本分配給該段落,然後將其附加到現有播放器上。為方便起見,該插件已存在,位於//solutions.brightcove.com/bcls/video-js/new-player/first-plugin.js

        videojs.registerPlugin('firstPlugin', function() {
          var player = this,
          overlay = document.createElement('p');
          overlay.className = 'vjs-overlay';
          overlay.innerHTML = "First Plugin Working!";
          player.el().appendChild(overlay);
        });
        
        

在此特定情況下,需要對段落進行樣式設置,以防止黑色背景上的黑色文本。以下是應用於段落的類名的樣式。為方便起見,此樣式表已存在,位於//solutions.brightcove.com/bcls/video-js/new-player/first-plugin.css

        .vjs-overlay {
          background-color: #333333;
          color: white;
          font-size: 2em;
          padding: 5px;
          position: absolute;
          top: 100px;
          left: 20px;
          width: 150px;
        }
        
        

就像您使用curl語句分配視頻源和海報圖像一樣,您將使用curl語句告訴播放器以下內容:

  • 包含插件代碼的JavaScript文件的位置
  • 樣式表的位置
  • 播放器要使用的插件名稱
  1. 使用以下curl語句使插件起作用。
            curl\
            --header "Content-Type: application/json"\
            --user $EMAIL\
            --request PATCH\
            --data '{
              "scripts": [
                "//solutions.brightcove.com/bcls/video-js/new-player/first-plugin.js"
               ],
               "stylesheets": [
                "//solutions.brightcove.com/bcls/video-js/new-player/first-plugin.css"
               ],
               "plugins": [{
                 "name": "firstPlugin"
               }]
              }'\
            https: //players.api.brightcove.com/v2/accounts/{account_id}/players/{player_id}/configuration
            
  2. 使用以下curl語句發布更新的播放器。這與您在上一節中發布播放器所使用的發布代碼相同。
            curl \
              --header "Content-Type: application/json" \
              --user $EMAIL \
              --request POST \
              https://players.api.brightcove.com/v2/accounts/{account_id}/players/{player_id}/publish
            
  3. 複製返回的URL並瀏覽。您將看到該插件正在運行,並且顯示了插件文本。
    外掛程式文字
    外掛程式文字

當使用Player Management API將插件添加到播放器時,無論是Brightcove提供的插件還是您已構建的自定義插件,該插件都將成為播放器代碼本身的一部分。

顯示配置

要調試和確認已完成的工作,查看播放器的配置通常會很有幫助。

  1. 為此,請使用GET 的方法configuration 網址。
            curl \
              --header "Content-Type: application/json" \
              --user $EMAIL \
              --request GET \
              https://players.api.brightcove.com/v2/accounts/{account_id}/players/{player_id}/configuration
            
            
  2. 檢查以確保JSON配置響應類似於以下內容:
            {
              "media": {
                "poster": {
                  "highres": "//solutions.brightcove.com/bcls/assets/images/Tiger.jpg"
                },
                "sources": [{
                  "type": "application/x-mpegURL",
                  "src": "//solutions.brightcove.com/bcls/assets/videos/Tiger.m3u8"
                }, {
                  "type": "video/mp4",
                  "src": "//solutions.brightcove.com/bcls/assets/videos/Tiger.mp4"
                }]
              },
              "compatibility": true,
              "video_cloud": {
                "video": "4093372393001",
                "policy_key": "BCpkADawqM3ugPRAtcx48_C4FjXiEiJORcRFnXkeL9siQUpauO_o7SaIhSnYvM24nUCeD74UFG1LMW8vtmaftsO1vYeeOn2iglfvEbG-c0PYwJ_zQCQGsvkrbgrNyEDvbEKjyrsQVXj0DOco"
              },
              "player": {
                "template": {
                  "name": "single-video-template",
                  "version": "6.7.0"
                }
              },
              "scripts": ["//solutions.brightcove.com/bcls/video-js/new-player/first-plugin.js"],
              "stylesheets": ["//solutions.brightcove.com/bcls/video-js/new-player/first-plugin.css"],
              "plugins": [{
                "name": "firstPlugin"
              }]
            }
            

查看播放器配置的另一種方法是瀏覽返回的URL值並更改index.htmlconfig.json

投放系統API

交付系統API允許管理和部署一組稱為存儲庫的文件。這些文件通過REST API和git管理。大多數人在創建或編輯播放器時都不需要使用這些API,但是它們可能是一組非常有趣的API,可用於其他目的。如果您想嘗試一下,可以在這裡做。有關動手操作的介紹,請嘗試逐步:輸送系統文件。