メッセージバスAPI

publish、subscribeなどの関数を使用してメッセージバスと通信を行います。

Ooyala Playerはメッセージバスとの通信に次の関数を公開しています。

subscribe ( eventName, subscriber, callback ) - メッセージバスに発行されているイベントをサブスクライブできます。例:

messageBus.subscribe(OO.Events."eventName", …);

messageBus.subscribe(OO.Events."metadataFetched");

myplayer.subscribe(OO.Events."eventName", …);
メッセージバスが発行したイベントすべてをサブスクライブするには、以下を使用することができます。
messageBus.subscribe("*");

unsubscribe ( eventName, subscriber, callback ) - 発行された イベントからサブスクライブ解除できます。パラメータには次のどちらでも指定できます。

  • 特定イベントの名前。

  • ワイルドカード文字「*」ですべてのイベントのサブスクライブ解除。

メッセージバスが発行した特定のイベントサブスクライブ解除するには、以下を使用することができます。
 mb.unsubscribe('pause')  
メッセージバスが発行したイベントすべてをサブスクライブ解除するには、以下を使用することができます。
 messageBus.unsubscribe("*");  

publish (' eventName ') - メッセージバスに対してイベントを発行することができ、同じ メッセージバスを使用することで他人がそのイベントをサブスクライブすることができます。イベントを受け取るには、 サブスクライバに対してイベントを発行しなければいけません。例:

 messageBus.publish('eventName')  messageBus.publish('play')   
addDependent - addDependent関数を使用して、条件やイベントでコントロールされるpublishまたは subscribeメッセージを送信することができます。たとえば、ビデオが再生される場所、1日のうちの時間といった条件に 基づいてUIを変更したいとします。ほかにも、条件でコントロール されるメッセージをサブスクライブするには、以下のような行を追加することができます。
 messageBus.addDependent(OO.EVENTS.eventNAME, 'name_of_condition', 
 'example', function( eventName ) {  

intercept ( eventName, subscriber, callback ) - コールバック関数を追加することで、メッセージバスに発行されたイベントをサブスクライブすることができます。

オプションパラメータには次のどれでも指定することができます。
  • eventName - インターセプトする特定イベントの名前。

  • subscriber - サブスクライバの名前 (モジュール名など)。

  • callback - 続けて発生するイベントのトリガで使用する引数のリストを返す関数。これにより、イベントペイロードおよび名前を操作することができます。インターセプタを 使用してイベントの浸透を中止するには、配列の代わりにfalseを返す必要があります。

参考例:次の例では、発行されたメッセージバスイベント ‘play’をサブスクライブし、サブスクライバ としてtest-pluginを指定、helloのペイロードを指定します。goodbyeをペイロードに 変えるinterceptをインクルードすると、メッセージバスがplayイベントを発行すると、コンソールはhelloではなく goodbyeを出力します。
mb.subscribe("play", "test-plugin", function(eventName, payload) {  
 console.log(eventName+": "+payload); });
mb.publish("play", "hello");
 Console would output "play: hello"
mb.intercept("play, "test-plugin", function(eventName, payload)
 { return ["goodbye"]; });
  Console would output "play: goodbye"

この記事はお役にたちましたか?