戻る 次へ

第 5 章: 埋め込み手法の概要

埋め込み型 RealOne Player には、埋め込まれたプレゼンテーションの再生をコントロールするメソッドが含まれています。 この章ではこれらのメソッドをカテゴリ別に紹介し、関連するメソッドを使って埋め込まれたプレゼンテーションを引き立たせる方法について説明します。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このガイドの JavaScript サンプルVBScript サンプルは、この章で説明しているメソッドの例を示します。

再生の制御

次のメソッドは、ユーザ独自のコントロールによるクリップの再生、一時停止、停止などの実行や、クリップの再生状態の判定を行います。

ビルトイン コントロールではなくユーザ独自の再生や一時停止、停止コントロールなどを使用したい場合、DoPlayDoPause、および DoStop 再生メソッドを使用します。 次の例は、ユーザ独自のコントロールを簡単に追加する方法を示します。

<INPUT TYPE="button" VALUE="Play" onClick="document.javademo.DoPlay()">
<INPUT TYPE="button" VALUE="Pause" onClick="document.javademo.DoPause()">
<INPUT TYPE="button" VALUE="Stop" onClick="document.javademo.DoStop()">

これらのメソッドは、クリップの再生状態を判定することもできます。 CanPlayCanPause、および CanStop 再生メソッドは、クリップの再生や一時停止、停止が可能かどうかを示します。 たとえば、CanPlaytrue を返した場合、クリップは一時停止または停止中であり、再生が可能です。 CanPlayfalse を返した場合、クリップはすでに再生中であり、再生を再度開始することはできません。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルは JavaScript を使った埋め込みの簡単な例を示します。 このサンプルをクリックすると、VBScript を使った埋め込みの簡単な例が表示されます。 このサンプルをクリックすると、JavaScript を使った埋め込み型プレーヤーのコントロールの例が表示されます。 このサンプルをクリックすると、VBScript を使った埋め込み型プレーヤーのコントロールの例が表示されます。

再生状態情報の取得

次のメソッドは、プレゼンテーションの現在の再生状態を取得したり、プレゼンテーションの経過済みおよび残りバッファリング時間を判定したりします。

GetPlayState は、RealOne Player の現在の状態を示す整数を返します。 戻り値の整数によって示される再生状態は次のとおりです。

現在のプレゼンテーションの状態を知ることができれば、非常に便利です。 たとえば、イメージ ウィンドウの最下段に表示される画像のステータス テキストを非表示にして、カスタム表示パネル内の現在のプレゼンテーション状態に置き換えることができます。

注意: イメージ ステータス テキストは、ステータス パネルやステータス フィールドなどのほかのコントロールがステータス テキストの表示に使用可能でない場合のみ、イメージ ウィンドウの最下段に表示されます。

GetPlayState から返される情報と同様、イメージ ウィンドウ最下段に表示される情報は、再生状態が接続中かバッファリング中か、などを示します。 このテキストを非表示にするには、SetImageStatus メソッドのパラメータを false に設定します。 現在のステータス テキストの設定が表示/非表示のどちらであるかを判定するには、GetImageStatus メソッドを使用します。

または、リクエストされたプレゼンテーションのバッファリング開始後の経過時間を判定することもできます。 埋め込み型プレーヤーはリクエストされたプレゼンテーションを持つホストに接続した後、スムーズな再生を行うためにバッファリングを行います。 GetBufferingTimeElapsed メソッドを使って経過時間を取得したり、GetBufferingTimeRemaining メソッドを使って残りのバッファリング時間を判定したりすることができます。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使って再生状態の情報を取得します。 このサンプルをクリックすると、VBScript を使って再生状態の情報を取得します。

コントロール属性の指定

いくつかのメソッドは、Web ページ上で埋め込まれたコントロールの、現在の状態の取得や設定を行います。 これらのメソッドは埋め込まれたコントロールの現在の状態に関する情報を与え、さらにコントロールの状態を動的に変更する方法も提供します。 また、これらのメソッドは C++ などのプログラミング言語内でも使用できます。

set メソッドを使うと、埋め込み型プレーヤーの属性を変更することができます。 これらのメソッドの多くは、<EMBED> または <OBJECT> タグのパラメータを反映しており、埋め込まれたコントロールの状態を動的に変更することができます。 たとえば、SetBackgroundColor を使って <EMBED> または <OBJECT> タグの BACKGROUNDCOLOR パラメータを変更し、ImageWindow 背景色を動的変えることができます。

次に示すのは、<EMBED> または <OBJECT> タグと共に使用するパラメータ (カッコ内) と関連付けられたメソッドです。

次の追加メソッドを使うと、埋め込み型プレーヤーの現在の属性状態を取得することができます。 たとえば、GetBackgroundColor は現在の背景色の 16 進数値を返します。

クリップ内のシーク

埋め込み型プレーヤーは、現在再生中のクリップに関する情報を取得するメソッドを提供します。 これらのメソッドには、現在のクリップ位置、合計長、およびプレゼンテーション内でシーク可能かどうかの判定も含まれます。

再生中は、GetCanSeek を使ってクリップ内をシーク可能かどうかを確認します。 メソッドの戻り値が true の場合、GetLength および GetPosition を使ってクリップの長さ (合計ミリ秒値) および現在位置 (再生済みミリ秒値) を取得することができます。 GetLength の戻り値を使うと、SetPosition で使用する値がクリップの合計長を超えないようにすることができます。

また、GetCanSeek の戻り値が true の場合は SetCanSeek を使用することもできます。 このメソッドによって、視聴者がクリップ内をシーク可能かどうかを指定することができます。 ただし、ライブ ブロードキャストなどのように元々シーク不可能なクリップを SetCanSeek を使ってシーク可能に設定しようとすると、設定されたメソッドが無効となります。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使ってクリップ内をシークします。 このサンプルをクリックすると、VBScript を使ってクリップ内をシークします。

クリップのタイトル、制作者、および著作権情報へのアクセス

次のメソッドを使うと、クリップのタイトル、制作者、および著作権情報を取得したり設定したりすることができます。

タイトルや制作者、著作権情報がクリップ内にエンコードされている場合、GetTitleGetAuthor、および GetCopyright を使って情報を取得することができます。 マルチクリップ プレゼンテーションの場合、これらのメソッドは現在再生中のクリップに関する情報を返します。

SetTitleSetAuthor、および SetCopyright メソッドは、クリップのタイトル、制作者、および著作権情報表示を動的に変更します。 この情報は通常、視聴者が埋め込まれたコントロール パネル上で i ボタンをクリックすると表示されます。 マルチクリップ プレゼンテーションの場合、これらのメソッドは現在再生中のクリップだけではなくプレゼンテーション全体の情報を上書きします。 これらのメソッドは、マルチクリップ プレゼンテーションでプレゼンテーション全体のタイトル、制作者、および著作権情報を設定したい場合に便利です。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使ってタイトル、制作者、および著作権情報が変更されます。 このサンプルをクリックすると、VBScript を使ってタイトル、制作者、および著作権情報が変更されます。

マルチクリップ プレゼンテーション内のプレイリストの振り分け

マルチクリップ プレゼンテーションは、各クリップに関する有用な情報を含むプレイリストから構成されています。 次のメソッドを使うと、プレイリスト内でクリップからクリップへと移動したり、プレゼンテーション内のクリップに関するコンテンツ情報を取得したりすることができます。

プレイリスト内のエントリ数を取得するには、GetNumEntries を使用します。 このメソッドでは、単一のエントリは常に数値 1 として返されます。 また、現在再生中のクリップのエントリ番号は GetCurrentEntry で取得することができます。 ただし、このメソッドはゼロからカウントを開始するため、プレイリスト内の 3 番目のエントリは数値 2 を返すことに留意してください。 マルチクリップ プレゼンテーションの再生中、HasNextEntry を使うとプレイリスト内の別のエントリがあるかどうかを判定することができます。 その後、DoNextEntry を使って次のクリップにジャンプできます。 HasPrevEntry を使うと、プレイリスト内に前のエントリが存在するかどうかを判定することができます。 この場合、DoPrevEntry を使って前のクリップの先頭に戻ることができます。

プレイリスト内のエントリ数の判定後、GetEntryAbstractGetEntryAuthorGetEntryCopyright、および GetEntryTitle を使ってプレゼンテーション内の任意のクリップの概要、制作者、著作権、およびタイトル情報を取得することができます。 このためには、必要な情報のプレイリスト エントリ番号をこれらのメソッドのパラメータとして与えるだけです。 これらのメソッドは、指定されたエントリの情報を格納した文字列を返します。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使ってマルチクリップ プレゼンテーション内のエントリが移動されます。 このサンプルをクリックすると、VBScript を使ってマルチクリップ内のエントリが移動されます。

ライブ ブロードキャストの判定

GetLiveState メソッドは、現在のストリームがライブかどうかを示します。 たとえばこの情報は、クリップ位置決めメソッドを使用するかどうかを知りたい場合に便利です。 GetLiveState の戻り値が true の場合、現在のストリームはライブ プレゼンテーションの一部であり、クリップ位置決めメソッドを使用することはできません。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使ってライブ ブロードキャストかどうかを判定できます。 このサンプルをクリックすると、VBScript を使ってライブ ブロードキャストかどうかを判定できます。

ユーザ インターフェイス ダイアログ ボックスの表示

RealOne Player には、さまざまなプレーヤー環境設定の実行や再生統計情報の表示、プレーヤー情報の表示などを視聴者に提供するメニューおよびダイアログ ボックスがいくつか用意されています。 次のメソッドによって、RealOne Player の環境を設定したり、プレーヤー情報および統計情報を表示したりすることができます。

環境設定には、SetShowPreferences を使ってアクセスすることができます。 このメソッドのパラメータを true に設定すると、RealOne Player の [Preferences (環境設定)] ダイアログ ボックスの簡易版が表示されます。 このダイアログ ボックスがすでに表示されているかどうかを判定するには、GetShowPreferences を使用します。このメソッドは、ダイアログ ボックスがすでに表示されていれば true を返します。

SetShowStatistics を使うと、再生統計情報を表示することができます。 このメソッドのパラメータを true に設定すると、RealOne Player の標準の統計情報ダイアログ ボックスが表示されます。 このダイアログ ボックスがすでに表示されているかどうかを判定するには、GetShowStatistics を使用します。このメソッドは、統計情報ダイアログ ボックスがすでに表示されていれば true を返します。

RealOne Player のバージョン情報ダイアログ ボックスには、プレーヤーのバージョンや個々のプレーヤー コンポーネントに関する情報が格納されています。 このダイアログ ボックスを表示するには、SetShowAbout パラメータを true に設定します。 このダイアログ ボックスがすでに表示されているかどうかを判定するには、GetShowAbout を使用します。 このメソッドの戻り値が true の場合、ダイアログ ボックスはすでに表示されています。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使って RealOne Player のダイアログ ボックスを表示することができます。 このサンプルをクリックすると、VBScript を使って RealOne Player のダイアログ ボックスを表示することができます。

エラー処理

次のメソッドを使うと、Web ページに組み込まれた RealOne Player がエラー ダイアログを表示するかどうかを指定することができます。

SetWantErrors メソッドが true に設定されている場合、プレーヤーからのエラー メッセージはトラップされ、エラー ダイアログ ボックスには表示されません。 SetWantErrorsfalse に設定されている場合、エラー メッセージがエラー ダイアログ ボックス内に表示されます。 GetWantErrors メソッドを使うと、エラー メッセージがトラップされているかどうかを判定することができます。 GetWantErrors の戻り値が true の場合、エラー メッセージはトラップされています。 GetWantErrors の戻り値が true の場合、エラー メッセージは発生時に表示されます。

プレーヤーのエラーが発生すると、標準エラー文字列によるエラー情報よりも詳細な情報を提供する URL を GetLastErrorMoreInfoURL メソッドが与えます。 詳細情報を提供する URL がない場合、このメソッドの戻り値はありません。

GetLastErrorRMACode メソッドは、RealOne Player によって返されたエラー コードを示す値を返します。 エラー コード値およびその説明は、SDK の rmaerror.h ファイルおよび『RealNetworks SDK Developer's Guide (RealNetworks SDK 開発者ガイド)』にあります。

その他の RealOne Player エラー メソッドには、エラーの重大度に対応する GetLastErrorSeverityOnShowStatus コールバックによって返された最後のステータス メッセージのテキストに対応する GetLastStatus があります。

また、ユーザ定義のエラー メソッドも 2 つ用意されています。 GetLastErrorUserCode および GetLastErrorUserString です。 GetLastErrorUserCode はユーザ定義のエラー コードを返し、GetLastErrorUserString は最後に発生したエラーの説明を格納したユーザ定義の文字列を返します。 RealOne Player 用のカスタム プラグインを設計した場合、これら両方のメソッドを使って、そのプラグイン用のエラー コードおよび文字列を返すことができます。 RealOne Player 用のカスタム プラグインを使用しない場合、これらのメソッドは戻り値を返しません。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使った RealOne Player のエラー ハンドラを表示することができます。 このサンプルをクリックすると、VBScript を使った RealOne Player のエラー ハンドラを表示することができます。

表示サイズの設定

Web ページ上のイメージ ウィンドウのサイズは、次のメソッドを使って、<EMBED><OBJECT> タグで指定したオリジナルのサイズ、または全画面サイズに変更することができます。

イメージ ウィンドウを全画面表示に設定するには、SetFullScreen メソッドのパラメータを true に設定します。 イメージ ウィンドウが全画面表示に設定されているかどうかを判定するには、GetFullScreen メソッドを使用します。 このメソッドの戻り値が true の場合、イメージ ウィンドウは全画面表示に設定されています。

Web ページ上で <EMBED> または <OBJECT> タグ内に指定したオリジナルのサイズにイメージ ウィンドウを設定するには、SetOriginalSize メソッドのパラメータを true に設定します。 イメージ ウィンドウが現在オリジナルのサイズに設定されているかどうかを判定するには、GetOriginalSize メソッドを使用します。 このメソッドの戻り値が true の場合、イメージ ウィンドウはオリジナルのサイズに設定されています。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使って表示サイズが変更されます。 このサンプルをクリックすると、VBScript を使って表示サイズが変更されます。

オーディオの制御

次のメソッドを使うと、さまざまなオーディオ コントロールを Web ページに埋め込み、プレゼンテーションの音量の取得や設定、プレゼンテーションのミュート、およびプレゼンテーションがステレオまたはモノラルのどちらで再生されているかの判定などを行うことができます。

プレゼンテーションの音量を設定するには、SetVolume を使用します。 このメソッドに入力するパラメータは、最大音量に対するパーセント値です。 つまり、音量を 50% に設定したい場合、メソッドのパラメータとして数値 50 を使用します。 プレゼンテーションの現在の音量を判定するには、GetVolume メソッドを使用します。 このメソッドは、最大音量に対する現在の音量設定をパーセント値で返します。

プレゼンテーションをミュートにするには、SetMute を使用します。 このメソッドのパラメータを true に設定するとプレゼンテーションがミュートになり、false に設定するとサウンドが前の音量レベルに戻ります。 プレゼンテーションが現在ミュートになっているかどうかを判定するには、GetMute メソッドを使用します。 このメソッドは、プレゼンテーションがミュートになっていれば true を返し、ミュートでなければ false を返します。

現在のプレゼンテーションがステレオかモノラルかを判定するには、GetStereoState メソッドを使用します。 このメソッドは、プレゼンテーションがステレオであれば true を返し、モノラルであれば false を返します。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使ったオーディオ設定を表示および変更することができます。 このサンプルをクリックすると、VBScript を使ったオーディオ設定を表示および変更することができます。

ネットワーク情報の取得

次のメソッドを使うと、埋め込まれたプレゼンテーションがユーザのネットワーク環境にどのように対応するかを判定するための情報を取得することができます。

2 つのメソッドによって、ユーザの RealOne Player からの再生帯域幅情報を取得することができます。 1 つ目のメソッド GetBandwidthAverage は、再生の開始からこのメソッドがコールされた時刻までのユーザの RealOne Player の平均再生帯域幅を、ビット毎秒の値で返します。 2 つ目のメソッド GetBandwidthCurrent は、現在の再生帯域幅をビット毎秒の値で返します。

GetNumSources メソッドは、プレゼンテーション内のソース数を返します。ソースとは、プレゼンテーション内の 1 つのメディア、またはプレイリストか .rpm ファイル内のエントリのことです。

いくつかのメソッドは、ユーザの振る舞いによる RealOne Player のネットワークトラフィックの変動を Web ページで監視できるように用意されています。 GetPacketsReceived は、Helix Server からプレーヤーが正しく受信したパケット総数を示し、GetPacketsTotal は、このメソッドがコールされた時点までにプレーヤーによって受信されるはずだったパケット総数を、消失したパケット数も含めて示します。 パケットが消失しなかった場合、GetPacketsTotalGetPacketsReceived と同じ値を返します。

また、ユーザの RealOne Player のパケット受信状況も監視することができます。

RealOne Player のバージョン情報の取得

GetVersionInfo メソッドは、ユーザのマシン上で動作している RealOne Player プラグインのバージョンを返します (6.0.7.788 などのピリオド区切り形式。これは、RealPlayer 8 用の埋め込み RealPlayer ビルドです)。 この情報を使うと、Web ページはバージョンの異なるプレーヤーに対して異なるオプションを使用することができます。

次の表は、相当する RealPlayer のリリース番号、スタンドアローンのビルド番号、および埋め込み型プレーヤーのビルド番号を示します。 この情報を使うと、異なるバージョンに対して異なる動作を実行できます。

バージョン互換表
リリース バージョン スタンドアローン ビルド番号 埋め込み型プレーヤー ビルド番号
8 アップデート 3 6.09.584 6.0.8.1024
8 アップデート 2 6.0.9.450 6.0.7.881
8 Gold 6.0.9.357 6.0.7.788
7 アップデート 1 6.0.8.122 6.0.7.529
7 Gold 6.0.7.380 6.0.7.407
G2 アップデート 3 6.0.6.99 6.0.6.98
G2 アップデート 2 6.0.6.33 6.0.6.33
G2 アップデート 1 6.0.5.27 6.0.5.27
G2 Gold 6.0.3.128 6.0.6.131

注意: JavaScript を使用してバージョン情報を取得しようとすると、Internet Explorer 5 のいくつかのバージョンでは GetVersionInfo が動作しない場合があります。 この場合、GetVersionInfo メソッドが正しく動作するように VBScript を使用してください。

今すぐ表示してください。 (このサンプルを表示するために必要な条件)
このサンプルをクリックすると、JavaScript を使って RealPlayer のバージョン情報を取得することができます。 このサンプルをクリックすると、VBScript を使ってバージョン情報を取得することができます。

イベント処理

RealOne Player には、Web ページ上でのキーボード イベントやマウス イベントの有効/無効を切り換えるためのメソッドが用意されています。 また、プラグイン内で ActiveX コントロールのようなイベント処理を実現するメソッドも用意されています。

使用可能なメソッド

SetWantKeyboardEvents メソッドは、ユーザの RealOne Player からキーボード イベントが返されるかどうかを設定します。 SetWantKeyboardEventstrue に設定されている場合、キーボード イベント コールバック、OnKeyDownOnKeyPress、および OnKeyUp が、キーボード イベント発生時に RealOne Player から送信されます。 このメソッドが false に設定されている場合、キーボード イベントは送信されません。 キーボード イベントがユーザの RealOne Player から要求されたかどうかを判定するには、GetWantKeyboardEvents メソッドを使用することができます。

SetWantMouseEvents メソッドもほぼ同様に動作します。 SetWantMouseEventstrue に設定されている場合、マウス イベント コールバック、OnLButtonDownOnLButtonUpOnMouseMoveOnRButtonDown、および OnRButtonUp が、マウス イベント発生時に RealOne Player から送信されます。 このメソッドが false に設定されている場合、マウス イベントは送信されません。 マウス イベントがユーザの RealOne Player から要求されたかどうかを判定するには、GetWantMouseEvents メソッドを使用することができます。

SetConsoleEvents メソッドは、プラグイン設計者がそのプラグインを ActiveX コントロールのように動作させられるように提供されています。 SetConsoleEvents メソッドの value パラメータを false に設定すると、コンソール接続対象のプラグインだけがイベントを送信します。

イベント処理の動作

ActiveX による実装を行う場合、イベント処理対象の特定の ActiveX コントロールを指定します。 このため、特定の ActiveX コントロールに関連する任意のイベントが、常にこの単一のコントロールによってのみ処理されます。

ただし、ページ上で複数のプラグインを使用しており、イベントがそのページ上で発生する場合、Java アプレットはどのプラグインからイベントが送信されたのかを判定することができません (各個別のプラグインを処理するために複数の Java アプレットをページに追加することは可能ですが、一般に、同一のコンソール名を共有するすべてのプラグインに対する全イベントは、単一のアプレットに送信されます)。 たとえば、ページ上に 2 つのプラグインがあり、どちらかのプラグイン内でマウスまたはボタン イベントを生成した場合、イベントはアプレットに送信されますが、どちらのプラグインがイベントを生成したかをアプレットが判定することはできません。

GetConsoleEvents メソッドを使うと、コンソール イベントが有効になっているかどうかを判定することができます。 GetConsoleEventstrue の場合、コンソール イベントは有効となり、任意のアプレットからのイベントがプラグインに送信されます。 このメソッドが false に設定されている場合、コンソール イベントは無効となり、コンソール接続対象のプラグインだけがイベントを送信します。 SetConsoleEvents メソッドは ActiveX コントロールには影響しません。


RealNetworks, Inc. ©2002 RealNetworks, Inc. All rights reserved.
詳細については、RealNetworks を参照してください。
画面左側に目次フレームが表示されない場合は、ここをクリックしてください。
戻る 次へ