IPlayerClient
プレイヤークライアントを表すインターフェイスです。
プロパティ
clearTextView()
clearTextView: (
sessionId?) =>Promise<void>
PlayerServerのメディアセッションに、キャプションコンテンツをレンダリングしているKeplerCaptionsViewをクリアするようにリクエストします。
パラメーター
sessionId?
IPlayerSessionId
省略可能。キャプションサーフェスをクリアする対象を指定するセッションID。指定しない場合、PlayerServerがリクエストの処理方法を決定します。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.clearTextView(sessionId);
} catch (error) {
console.error('clearTextViewの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
clearVideoView()
clearVideoView: (
sessionId?) =>Promise<void>
PlayerServerのメディアセッションに、ビデオコンテンツをレンダリングしているKeplerVideoSurfaceViewをクリアするようにリクエストします。
パラメーター
sessionId?
IPlayerSessionId
省略可能。ビデオ表示をクリアするための対象となるセッションID。指定しない場合、PlayerServerがリクエストの処理方法を決定します。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.clearVideoView(sessionId);
} catch (error) {
console.error('clearVideoViewの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
destroy()
destroy: () =>
void
Keplerプレイヤークライアントインスタンスを破棄し、Keplerプレイヤーサービスを停止します。クライアントは、対話型コンポーネントが破棄されたときに、メディアリソースをクリーンアップするためにこのAPIを呼び出すことが期待されます。
戻り値
void
例
playerClientRef.current?.destroy();
getCurrentPosition()
getCurrentPosition: (
sessionId?) =>Promise<number>
PlayerServerに、メディア再生の現在の再生位置(秒単位)を取得するようにリクエストします。
パラメーター
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<number>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。sessionIdに対応する現在の再生位置を示す数値を秒単位で返します。
詳細
メディアセッションは、新しい再生ステータスを反映するようにIPlayerSessionStatusを更新する必要があります。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
let position = await playerClientRef.current?.getCurrentPosition(sessionId);
} catch (error) {
console.error('Error while calling getCurrentPosition: ', error);
// エラー処理を実行します。
}
load()
load: (
mediaInfo,loadParams?,sessionId?) =>Promise<void>
指定されたURLを使用してコンテンツをロードするようPlayerServerにリクエストします。
パラメーター
mediaInfo
IPlayerSessionMediaInfo
メディアコンテンツを読み込むために必要なURLとHTTPヘッダーを記述するオブジェクト。
loadParams?
IPlayerSessionLoadParams
省略可能。URLを使用してコンテンツを読み込むために必要なパラメーター。
sessionId?
IPlayerSessionId
省略可能。コンテンツを読み込む対象を指定するセッションID。指定しない場合、PlayerServerは新しいメディアセッションを作成する必要があります。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
例
const mediaInfo: IPlayerSessionMediaInfo = {
mediaUrl: {
url: 'https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd',
httpHeaders: [
{
name: 'header1',
value: 'value1',
},
{
name: 'header2',
value: 'value2',
},
],
},
laUrl: {
url: 'https://cwip-shaka-proxy.appspot.com/no_auth',
httpHeaders: [
{
name: 'drm_scheme',
value: 'com.widevine.alpha',
},
],
},
oobTextTrackInfo: [
{
url: 'https://mtoczko.github.io/hls-test-streams/test-vtt-ts-segments/text/1.vtt',
kind: 'subtitles',
label: 'English',
language: 'en',
mimeType: 'application/x-subtitle-vtt',
},
{
url: 'https://brenopolanski.github.io/html5-video-webvtt-example/MIB2-subtitles-pt-BR.vtt',
kind: 'subtitles',
label: 'Spanish',
language: 'es',
mimeType: 'application/x-subtitle-vtt',
},
],
};
const loadParams: IPlayerSessionLoadParams = {
startPosition: 0,
autoPlay: true,
};
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.load(mediaInfo, loadParams, sessionId);
} catch (error) {
console.error('loadの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
pause()
pause: (
sessionId?) =>Promise<void>
PlayerServerに再生を一時停止するようにリクエストします。
パラメーター
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアセッションは、新しい再生ステータスを反映するようにIPlayerSessionStatusを更新する必要があります。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.pause(sessionId);
} catch (error) {
console.error('pauseの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
play()
play: (
sessionId?) =>Promise<void>
PlayerServerに再生を開始または再開するようリクエストします。
パラメーター
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアセッションは、新しい再生ステータスを反映するようにIPlayerSessionStatusを更新する必要があります。Keplerプレーヤーサーバーは、再生速度を通常にリセットする場合があります。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.play(sessionId);
} catch (error) {
console.error('playの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
registerBufferedRangesListener()
registerBufferedRangesListener: (
listener,sessionId?) =>Promise<ISubscription>
リスナーをサブスクライブして、バッファされた範囲の変化を監視します。
パラメーター
listener
IPlayerSessionBufferedRangesListener
追加するリスナー。See IPlayerSessionBufferedRangesListener.
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<ISubscription>
ISubscriptionオブジェクトを使用して解決されるプロミス。このオブジェクトを使用して、リスナーが不要になったときにリスナーのサブスクライブを解除できます。
例
const sessionId: IPlayerSessionId = {id: 1};
let subscription: ISubscription =
await playerClientRef.current?.registerBufferedRangesListener(
listener,
sessionId,
);
registerErrorListener()
registerErrorListener: (
listener,sessionId?) =>Promise<ISubscription>
サービスコンポーネントからエラーを受け取るようにリスナーをサブスクライブします。
パラメーター
listener
追加するリスナー。See IPlayerSessionErrorListener
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<ISubscription>
ISubscriptionオブジェクトを使用して解決されるプロミス。このオブジェクトを使用して、リスナーが不要になったときにリスナーのサブスクライブを解除できます。
例
const sessionId: IPlayerSessionId = {id: 1};
let subscription: ISubscription =
await playerClientRef.current?.registerMessageListener(listener, sessionId);
registerMessageListener()
registerMessageListener: (
listener,sessionId?) =>Promise<ISubscription>
サービスコンポーネントからメッセージを受信するようにリスナーをサブスクライブします。
パラメーター
listener
追加するリスナー。See IPlayerSessionMessageListener
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<ISubscription>
ISubscriptionオブジェクトを使用して解決されるプロミス。このオブジェクトを使用して、リスナーが不要になったときにリスナーのサブスクライブを解除できます。
例
const sessionId: IPlayerSessionId = {id: 1};
let subscription: ISubscription =
await playerClientRef.current?.registerMessageListener(listener, sessionId);
registerPositionListener()
registerPositionListener: (
listener,interval,sessionId?) =>Promise<ISubscription>
リスナーをサブスクライブして、再生位置の更新を監視します。この位置は秒単位です。
パラメーター
listener
IPlayerSessionPositionListener
追加するリスナー。See IPlayerSessionPositionListener
interval
number
再生位置の更新を受け取る間隔(秒単位)。負でない値である必要があります。
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<ISubscription>
ISubscriptionオブジェクトを使用して解決されるプロミス。このオブジェクトを使用して、リスナーが不要になったときにリスナーのサブスクライブを解除できます。
例
const sessionId: IPlayerSessionId = {id: 1};
let subscription: ISubscription =
await playerClientRef.current?.registerPositionListener(
listener,
1.0,
sessionId,
);
registerStatusListener()
registerStatusListener: (
listener,sessionId?) =>Promise<ISubscription>
リスナーをサブスクライブして、プレイヤーセッションステータスの変化を監視します。
パラメーター
listener
追加するリスナー。See IPlayerSessionStatusListener
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<ISubscription>
ISubscriptionオブジェクトを使用して解決されるプロミス。このオブジェクトを使用して、リスナーが不要になったときにリスナーのサブスクライブを解除できます。
例
const sessionId: IPlayerSessionId = {id: 1};
let subscription: ISubscription =
await playerClientRef.current?.registerStatusListener(listener, sessionId);
registerTrackListener()
registerTrackListener: (
listener,sessionId?) =>Promise<ISubscription>
リスナーをサブスクライブしてトラック情報の変化を監視します。
パラメーター
listener
追加するリスナー。See IPlayerSessionTrackListener
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<ISubscription>
ISubscriptionオブジェクトを使用して解決されるプロミス。このオブジェクトを使用して、リスナーが不要になったときにリスナーのサブスクライブを解除できます。
例
const sessionId: IPlayerSessionId = {id: 1};
let subscription: ISubscription =
await playerClientRef.current?.registerTrackListener(listener, sessionId);
seek()
seek: (
position,isRelative?,sessionId?) =>Promise<void>
指定した再生位置(秒単位)までシークするようPlayerServerにリクエストします。
パラメーター
position
number
シーク先の再生位置(秒単位)。現在の再生位置からの相対値(isRelative = true)、またはメディア開始からの絶対値(isRelative = false、0がメディア開始)。
isRelative?
boolean
指定した位置が現在の再生位置からの相対値(isRelative = true)か、メディア内の絶対値(isRelative = false)かを表します。デフォルト値はfalseです。
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアセッションは、新しい再生位置を反映するようにIPlayerSessionStatusを更新する必要があります。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.seek(30, true, sessionId);
} catch (error) {
console.error('seekの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.seek(-5, false, sessionId);
} catch (error) {
console.error('seekの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
sendMessage()
sendMessage: (
message,sessionId?) =>Promise<void>
対話型コンポーネントがカスタムメッセージをサービスコンポーネントに送信する方法を提供します。任意のJSON型をメッセージとして送信できます(undefinedを除く)。
パラメーター
message
any
送信するカスタムメッセージです。JSON値(undefinedを除く)をメッセージとして送信します。
sessionId?
IPlayerSessionId
省略可能。カスタムメッセージの処理が必要なセッションのセッションIDです。指定しない場合、すべてのセッションのデータに関するリクエストとして扱います。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合やmessageがundefinedの場合は、エラーで拒否されます。
例
// 任意のオブジェクトを作成します。
const customMessage = {
video: {
title: 'Video 1',
myVideoId: 34,
},
};
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.sendMessage(customMessage, sessionId);
} catch (error) {
console.error('sendMessageの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
setActiveTrack()
setActiveTrack: (
trackType,trackId,sessionId?) =>Promise<void>
PlayerServerにメディア再生のアクティブトラックを設定するようにリクエストします。
パラメーター
trackType
ITrackType
アクティブとして設定するトラックのタイプ。
trackId
string
アクティブとして設定するトラックのトラックID。
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアセッションは、新しい再生ステータスを反映するようにIPlayerSessionStatusを更新する必要があります。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.setActiveTrack('AUDIO', 'JS_0', sessionId);
} catch (error) {
console.error('setActiveTrackの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
setMediaControlFocus()
setMediaControlFocus: (
componentInstance,mediaControlHandler?) =>Promise<void>
PlayerClientMediaControlHandlerインスタンスを登録します
バージョン2.1.0以降で使用できます。
パラメーター
componentInstance
IComponentInstance
ハンドラーを設定する必要があるコンポーネントインスタンス。
mediaControlHandler?
PlayerClientMediaControlHandler
イベントハンドラーを含むオブジェクト。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合や対象バージョンが2.1.0未満の場合は、エラーで拒否されます。
例
// 対話型コンポーネント内。
import {
useComponentInstance,
IComponentInstance,
} from '@amazon-devices/react-native-kepler';
import {PlayerClientMediaControlHandler} from '@amazon-devices/kepler-player-client';
const componentInstance: IComponentInstance = useComponentInstance();
class MyMediaControlsHandler extends PlayerClientMediaControlHandler {
private playerClientRef: IPlayerClient | undefined;
// MyMediaControlsHandlerを実装します。
}
let mediaControlsHandler: MyMediaControlsHandler = new MyMediaControlsHandler(
playerClientRef.current as IPlayerClient,
);
try {
await playerClientRef.current?.setMediaControlFocus(
componentInstance,
mediaControlsHandler,
);
} catch (error) {
console.error('setMediaControlFocusの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
setMute()
setMute: (
isMuted,sessionId?) =>Promise<void>
PlayerServerに再生のミュートまたはミュート解除をリクエストします。
パラメーター
isMuted
boolean
trueの場合、メディアはミュートされます
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアセッションは、新しい再生ステータスを反映するようにIPlayerSessionStatusを更新する必要があります。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.setMute(true, sessionId);
} catch (error) {
console.error('setMuteの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
setPlaybackRate()
setPlaybackRate: (
playbackRate,sessionId?) =>Promise<void>
メディア再生の再生レートを設定するようPlayerServerにリクエストします。
パラメーター
playbackRate
number
設定する再生レート(0.25、0.5、2.0など)。入力された再生レートがサポートされていない場合、プロミスは拒否され、登録されたIPlayerSessionErrorListenerインスタンスはIPlayerSessionErrorを受け取ります。
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアセッションは、新しい再生ステータスを反映するようにIPlayerSessionStatusを更新する必要があります。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.setPlaybackRate(1.5, sessionId);
} catch (error) {
console.error('setPlaybackRateの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
setTextView()
setTextView: (
viewHandle,sessionId?) =>Promise<void>
PlayerServerのメディアセッションに、ロードされたコンテンツでKeplerキャプションビューを設定するようにリクエストします。
パラメーター
viewHandle
IViewHandle
Keplerキャプションビューの表示ハンドル。
sessionId?
IPlayerSessionId
省略可能。キャプションサーフェスを設定する対象を指定するセッションID。指定しない場合、PlayerServerがリクエストの処理方法を決定します。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアコンテンツがロードされた後に、ロードAPIのいずれかを呼び出してsetTextViewを呼び出す必要があります。
例
const captionsHandleRef = useRef<IViewHandle | null>(null);
const sessionId: IPlayerSessionId = {id: 1};
// <KeplerCaptionsView>コンポーネントの onCaptionViewCreated関数を以下に登録します。
const onCaptionViewCreated = (surfaceHandle: string): void => {
captionsHandleRef.current = {handle: surfaceHandle};
try {
await playerClientRef.current?.setTextView(
captionsHandleRef.current,
sessionId,
);
} catch (error) {
console.error('clearVideoViewの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
};
setVideoView()
setVideoView: (
viewHandle,sessionId?) =>Promise<void>
PlayerServerのメディアセッションに、ロードされたコンテンツでKeplerビデオサーフェスビューを設定するようにリクエストします。
パラメーター
viewHandle
IViewHandle
KeplerVideoSurfaceViewの識別子。
sessionId?
IPlayerSessionId
省略可能。ビデオサーフェスを設定する対象を指定するセッションID。指定しない場合、PlayerServerがリクエストの処理方法を決定します。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアコンテンツがロードされた後に、ロードAPIのいずれかを呼び出してsetVideoViewを呼び出す必要があります。
例
const surfaceHandleRef = useRef<IViewHandle | null>(null);
const sessionId: IPlayerSessionId = {id: 1};
// <KeplerVideoSurfaceView>コンポーネントのonSurfaceViewCreated関数を以下に登録します。
const onSurfaceViewCreated = (surfaceHandle: string): void => {
surfaceHandleRef.current = {handle: surfaceHandle};
try {
await playerClientRef.current?.setVideoView(
surfaceHandleRef.current,
sessionId,
);
} catch (error) {
console.error('setVideoViewの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
};
setVolume()
setVolume: (
volume,sessionId?) =>Promise<void>
PlayerServerにメディア再生の音量を設定するようにリクエストします。
パラメーター
volume
number
0.0から1.0の範囲で設定する音量。
sessionId?
IPlayerSessionId
省略可能。リクエストの対象を指定するセッションID。指定しない場合、対象となるセッションはPlayerServerによって決定されます。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
詳細
メディアセッションは、新しい再生ステータスを反映するようにIPlayerSessionStatusを更新する必要があります。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.setVolume(0.75, sessionId);
} catch (error) {
console.error('Error while calling setVolume: ', error);
// エラー処理を実行します。
}
unload()
unload: (
sessionId?) =>Promise<void>
PlayerServerのメディアセッションにメディアコンテンツをアンロードするようにリクエストします。たとえば、アプリの状態がバックグラウンドに変わった場合にメディアコンテンツを同期的にアンロードするには、unloadSyncを呼び出します。
パラメーター
sessionId?
IPlayerSessionId
省略可能。コンテンツをアンロードする対象のセッションID。指定しない場合、PlayerServerがリクエストの処理方法を決定します。
戻り値
Promise<void>
リクエストが正常に処理されたときに解決されるプロミスです。リクエストが失敗した場合はエラーで拒否されます。
例
const sessionId: IPlayerSessionId = {id: 1};
try {
await playerClientRef.current?.unload(sessionId);
} catch (error) {
console.error('unloadの呼び出し中にエラーが発生しました:', error);
// エラー処理を実行します。
}
unloadSync()
unloadSync: (
timeoutMsec,sessionId?) =>IUnloadSyncStatus
PlayerServerのメディアセッションにメディアコンテンツを同期的にアンロードするようにリクエストします。このAPIを使用して、アプリの状態がバックグラウンドに変わったときにメディアリソースを解放します。
パラメーター
timeoutMsec
number
unloadSync APIの実行に許可される最大時間(ミリ秒)。
注
最小値は1000で、最大値は5000です。
sessionId?
IPlayerSessionId
省略可能。コンテンツをアンロードする対象のセッションID。指定しない場合、PlayerServerがリクエストの処理方法を決定します。
戻り値
IUnloadSyncStatus
@amazon-devices/kepler-player-server#IUnloadSyncStatus|PlayerServer IUnloadSyncStatusの列挙値の1つ。
以下のバージョン以降で利用可能
2.2.0
例
const sessionId: IPlayerSessionId = {id: 1};
if (isPresentOnOS('@amazon-devices/kepler-player-client', '2.2.0')) {
try {
let unloadResult: IUnloadSyncStatus | undefined =
playerClientRef.current?.unloadSync(1000, sessionId);
if (
unloadResult === IUnloadSyncStatus.INVALID ||
unloadResult === IUnloadSyncStatus.TIMEDOUT
) {
console.error('unloadSyncが失敗しました:', unloadResult);
} else {
console.log('unloadSync completed successfully.');
}
} catch (error) {
console.error('Error while calling unloadSync: ', error);
// エラー処理を実行します。
}
} else {
console.error('unloadSync not supported in this OS.');
}
Last updated: 2025年10月2日

