ビデオショートカットプロバイダーの作成
Liferay DXP 7.4以降で利用可能
デフォルトでは、Liferayの外部ビデオショートカットは、 YouTube 、 Vimeo 、 Facebook 、および Twitch をサポートしています。 ただし、この機能を拡張して、他のビデオソースをサポートすることができます。
次の手順に従って、独自のビデオショートカットプロバイダーを作成します。
-
OSGIコンポーネントアノテーション :
@Component
アノテーションを使用して、OSGiフレームワーク内でプロバイダーをDLVideoExternalShortcutProvider.class
サービスとして宣言します。 -
DLVideoExternalShortcutProvider
:DLVideoExternalShortcutProvider
インターフェースを実装します。 -
インターフェイスメソッドのオーバーライド :インターフェイスの
getDLVideoExternalShortcut()
メソッドをオーバーライドします。 このメソッドは、DLVideoExternalShortcut
インターフェイスのインスタンスを作成し、URL文字列を受け取ります。 実装において次のことが実行されるか確認してください。- 受信したURLが定義済みのURLパターンと一致するかどうかを確認します。
- URLがパターンに一致しない場合、プログラムは
null
を返す必要があります。 Liferayは、一致するものを探して他の利用可能なプロバイダーをチェックします。 - URLがパターンと一致する場合は、URLを解析し、外部ソースから追加情報をフェッチして、収集した情報を含む
DLVideoExternalShortcut
インスタンスを返します。
-
DLVideoExternalShortcut
メソッドのオーバーライド :getDLVideoExternalShortcut()
メソッドによって返されるDLVideoExternalShortcut
インスタンスに必要なメソッドをオーバーライドします。getURL()
:元のビデオURLを取得します。renderHTML()
:ユーザーインターフェイスにビデオを埋め込みます。 これは通常、iframe
をレンダリングしますが、ユーザー向けにビデオをレンダリングするHTMLビデオタグにすることもできます。
-
次のオプションのメソッドをオーバーライドします。
getDescription()
:このメソッドを使用して、元のビデオの説明を取得します。デフォルト値はnull
です。getThumbnailURL()
:このメソッドを使用して、ビデオのサムネイルを取得します。デフォルト値はnull
です。getTitle()
:このメソッドを使用して、元のビデオのタイトルを取得します。デフォルト値はnull
です。
以下は、 外部のビデオショートカットプロバイダーのサンプル で、独自に実装するための最低限の要件を示しています。 より複雑な例については、 既存のプロバイダー を参照してください。
サンプルビデオプロバイダーのデプロイ
新しいLiferay インスタンスを起動し、以下を実行します。
http://localhost:8080でLiferayへのサインインします。 メールアドレス test@liferay.com とパスワード test を使用してください。 プロンプトが表示されたら、パスワードを learn に変更します。
次に、以下の手順を実行します。
-
サンプルモジュールをダウンロードして解凍する。
-
gradlew deploy
コマンドを実行してJARファイルをビルドし、それを新しいDockerコンテナにデプロイします。JARは、
build/libs
フォルダ(つまり、g9b6-impl/build/libs/com.acme.G9B6.impl-1.0.0
)に生成されます。 -
プロバイダーが正常にデプロイされ、コンテナコンソールを介して開始されたことを確認します。
-
短いDailymotionのURLで新しい外部動画ショートカットを作成し、モジュールが機能していることを確認します (例:https://dai.ly/x7szh28)。
成功した場合、LiferayはDailymotionをサポートされているプラットフォームとして認識します。
サンプルビデオプロバイダーのコード
OSGiコンポーネントアノテーション
プロバイダーは、OSGiフレームワーク内でコンポーネントとして宣言され、DLVideoExternalShortcutProvider.class
サービスとして識別されます。
DLVideoExternalShortcutProvider
実装
プロバイダーは、DLVideoExternalShortcutProvider
インターフェースを実装します。 このインターフェースには、有効なURLを受信した場合にDLVideoExternalShortcut
を返す単一のメソッドgetDLVideoExternalShortcut
が含まれています。
getDLVideoExternalShortcut
のオーバーライド
プロバイダーは、インターフェースのgetDLVideoExternalShortcut
メソッドをオーバーライドします。このメソッドには、プロバイダーの基本的なロジックがすべて含まれています。 URLが定義された正規表現パターンと一致するかどうかをチェックします。 一致するものが見つからない場合は null
を返し、Liferayは一致するものを探して他の利用可能なプロバイダーを呼び出します。 一致する場合は、ビデオをLiferayのページまたはアセットに埋め込むための新しいDLVideoExternalShortcut
オブジェクトを返します。
DLVideoExternalShortcut
のメソッドのオーバーライド
プロバイダーがDLVideoExternalShortcut
オブジェクトを返すと、オブジェクトのgetURL()
メソッドとrenderHTML()
メソッドがオーバーライドされます。 getURL()
は、ユーザーが入力したURLを返します。 renderHTML()
はHttpServletRequest
パラメーターを受け取り、Liferayのページまたはアセットに埋め込まれるiframe
文字列を返します。 次の例を考えてみましょう。
getDescription()
、getThumbnailURL()
、およびgetTitle()
がオーバーライドされていないので、null
が返されます。