支持 聯繫支持 | 系統狀況 系統狀態

嵌入API

本主題將幫助您確定何時以及如何使用Embed API。 選擇使用 Player 配置API與嵌入式API是很重要的一個,本文檔中的內容將指導您做出這些決定。

為什麼要使用嵌入API?

嵌入API允許您創建特定實例的多個實例 player。 想到這一點的好方法 player/ instance關係作為父/子關係。 單 player 是父母,並且 player使用embed API創建的s是父級的子級 player。 父母 player 擁有您希望擁有的大部分屬性 player 擁有,然後您可以使用嵌入API來自定義不同子項上的屬性子集 players。 例如,您可以加載不同的媒體,也可以使用不同的插件和不同的子元素樣式 players.

下圖有助於闡明功能。 父母的下方顯示在左側,兩個孩子 players在右邊。 注意:

  • 海報由兩個孩子繼承
  • 播放按鈕的形狀由頂部的子項繼承,而在底部的子項中覆蓋
  • 頂級子級添加一個屬性,在本例中為疊加層,父級沒有
兒童增加財產
兒童增加財產

父/子關係的另一個強大功能是繼承正在進行。 下圖顯示了分配給父級的新海報,兩個子級都將繼承該配置更改。

孩子們繼承變化
孩子們繼承變化

何時不使用嵌入API

雖然有很多很好的理由可以在您的用例需要時使用嵌入的API,但也有一些很好的理由可以堅持使用常規API。 players。 這裡有一些:

  • 孩子 player不能使用編輯 Video Cloud 工作室。 您只能編輯子級 player通過 Player Management API。 您可以編輯父項 player 一個孩子 player in Video Cloud Studio,但對父項進行了更改 player 影響所有孩子 players.
  • 發布父母 player 如果你有很多孩子可能會花費很長時間 player與該父級關聯的 player。 每個孩子 player 是單獨出版的,如果您的孩子超過30個 players,您可以預期您的孩子會有一些延誤 player 出版。 這與發布30個常規規則完全相同 player在同一時間。

鑑於上述原因,開始使用常規 players,然後在發現需要孩子時嘗試嵌入 players.

視頻標籤數據嵌入

父母與子女在符號上有差異 players。 標準頁內嵌入 player 代碼以以下格式顯示:

    <video-js
      data-account="1507807800001"
      data-player="HiAdwRZ7kK"
      data-embed="default"
      controls=""
      data-application-id=""
      class="vjs-fluid"></video-js>

data-embed 屬性確定是否 player 是父母或孩子。 如果值為 default中, player 是父母。 如果 player 是個孩子, data-embed 屬性將包含父級的ID player。 一個例子如下:

data-embed 屬性確定是否 player 是父母或孩子。 如果值為 default中, player 是父母。 如果 player 是個孩子, data-embed 屬性將包含父級的ID player。 一個例子如下:

    <video-js
      data-account="1507807800001"
      data-player="HiAdwRZ7kK"
      data-embed="NURK56ZSV"
      data-application-id=""
      class="video-js" controls></video-js>

請注意 data-player, 那就是 player ID,相同,但 data-embed 已從 default 給孩子 player的ID。

孩子 player 網址

你如何區分父母 player 和孩子 players? URL將不同。 例如,父母 player的網址是:

    //players.brightcove.net/1507807800001/HiAdwRZ7kK_default/index.min.js

使用嵌入的API創建子級後 player,孩子 player的ID添加到父母的URL中,如下所示:

    //players.brightcove.net/1507807800001/HiAdwRZ7kK_NURK56ZSV/index.min.js

父母/孩子用例

假設您使用多個視頻 players。 通常, player幾乎是相同的,但是在某些情況下,您需要調整 player 對於特殊情況。 您可以創建多個 player使用 Player 配置API POSTPATCH 方法,但這可能會導致重大的維護問題。 例如,假設您要更改所有 players。 這意味著使用 PATCH 在所有不同的地方 players。 而如果您創建了孩子 players,你只會 PATCH 父母 player和所有孩子 player會自動擁有新的海報。

創作過程

如果您已完成 一步步: Player 管理 您已經看到了使用curl語句將HTTP方法傳遞給 Player Management API。 此處將使用相同的方法。

創建一個 player 您最有可能在其中使用了一些HTTP方法 Player 配置API,例如:

  • 創建 player 使用 POSThttps://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players
  • 更新 player 使用 PATCHhttps://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/configuration
  • 發布更新的 player 使用 POSThttps://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/publish

兒童將採用類似的方法 player使用嵌入的API。 在很高的級別上,您將:

  • 創建一個孩子 player 使用 POSThttps://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/嵌入視頻。 注意:兒童 player使用embed API創建的s會在創建時自行發布,因此無需在child上發布 player 創作,僅在孩子身上 player 更新。
  • 更新孩子 player 使用 PATCHhttps://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/嵌入/ $ EMBED_ID /配置
  • 發布孩子 player 使用 POSThttps://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/嵌入/ $ EMBED_ID /發布

以下內容詳細描述了該過程。

創建子 player

創造一個孩子 player 您使用HTTP POST 方法,如下所示:

    curl /
    --header "Content-Type: application/json" /
    --user $EMAIL /
    --request POST /
    --data '{
    "media": {
    "sources": [
      {
        "src":"http://solutions.brightcove.com/bcls/assets/videos/BirdsOfAFeather.mp4",
        "type":"video/mp4"
      }
    ],
    "poster": {
      "highres":"http://solutions.brightcove.com/bcls/assets/images/BirdsOfAFeather.jpg"
    }
    }
      }' /
    https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds

對孩子的回應示例 player 創建如下:

    {
        "id": "be864624-8d85-4dfc-8fe6-4e9dd4c70417",
        "url": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
        "embed_code": "<iframe src='//players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
        "embed_in_page": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/in_page.embed",
        "preview_url": "http://preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
        "preview_embed_code": "<iframe src='//preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>"
    }

注意:孩子 player 自我在創作時發布,因此無需發布孩子 player 創建後。 您仍然必鬚髮布孩子 player 如果用 PATCH 方法。 此時,預覽信息無濟於事,因為您可以使用已發布的子級 player 創建後立即。

您現在可以使用 url 孩子的財產 player 看結果。 在下面的示例中,孩子 player 被添加到父項 player 在分步中創建: Player 管理。 您會看到新的海報和視頻,但父級的疊加插件 player 仍然存在。

孩子 Player 與父母的疊加
孩子 Player 與父母的疊加

更新孩子 player

更新孩子 player 您使用HTTP PATCH 方法。 以下curl語句更新了 poster 屬性。 假設您已經設置了 $EMBED_ID 適當的環境變量:

    curl
    --header "Content-Type: application/json"
    --user $EMAIL
    --request PATCH
    --data '{
    "media": {
    "poster": {
      "highres":"http://solutions.brightcove.com/bcls/assets/images/Water-Splashing.jpg"
    }
    }
      }'
    https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds/$EMBED_ID/configuration
    

響應提供了兩個 preview_urlpreview_embed_code 碼:

    {
        "preview_url": "http://preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
        "preview_embed_code": "<iframe src='//preview-players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c/be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>"
    }

發布子 player

一旦孩子 player 被更改,您將需要發布它。 確保 $EMBED_ID 設置了環境變量,然後可以發布新更改的子級 player:

    curl
    --header "Content-Type: application/json"
    --user $EMAIL
    --request POST
    https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds/$EMBED_ID/publish

響應提供了使用孩子所需的重要信息 player,就像發布一個 player 確實:

    {
        "id": "be864624-8d85-4dfc-8fe6-4e9dd4c70417",
        "url": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html",
        "embed_code": "<iframe src='//players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
        "embed_in_page": "http://players.brightcove.net/1507807800001/668c5107-a80c-4940-8c17-279c01ce101c_be864624-8d85-4dfc-8fe6-4e9dd4c70417/in_page.embed"
    }

顯示孩子信息

您可以使用HTTP GET 檢索有關孩子的信息的方法 player。 curl語句的示例是:

    curl
      --header "Content-Type: application/json"
      --user $EMAIL
      --request GET
      https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds

返回了大量的JSON數據。

刪除子 players

您也可以刪除一個孩子 player 通過使用 DELETE 方法。 這是刪除子項的curl語句示例 player:

    curl
    --header "Content-Type: application/json"
    --user $EMAIL
    --request DELETE
    https://players.api.brightcove.com/v2/accounts/$ACCOUNT_ID/players/$PLAYER_ID/embeds/$EMBED_ID

當然,這只會影響孩子 player 而不是父母 player.


頁面最後更新於12年2020月XNUMX日