CRIWARE Unity Plugin Manual  Last Updated: 2024-04-24
Player クラス

ムービ再生制御を行うネイティブプレーヤのラッパークラスです。 [詳解]

CriDisposableを継承しています。

公開型

enum  Status {
  Stop, Dechead, WaitPrep, Prep,
  Ready, Playing, PlayEnd, Error,
  StopProcessing, ReadyForRendering
}
 プレーヤの状態を示す値です。 [詳解]
 
enum  SetMode { New, Append, AppendRepeatedly }
 ファイルをセットする際のモードです。 [詳解]
 
enum  MovieEventSyncMode { FrameTime, PlayBackTime }
 ムービイベント(キューポイント、字幕)の同期モードです。 [詳解]
 
enum  AudioTrack { Off, Auto }
 オーディオトラックを設定する際のモードです。 [詳解]
 
enum  TimerType : int {
  None = 0, System = 1, Audio = 2, User = 3,
  Manual = 4
}
 タイマー種別です。 [詳解]
 

公開メンバ関数

delegate void CuePointCallback (ref EventPoint eventPoint)
 キューポイントコールバックデリゲート型です。 [詳解]
 
delegate void StatusChangeCallback (Status status)
 プレーヤ状態変更時コールバックのデリゲート型です。 [詳解]
 
delegate void SubtitleChangeCallback (IntPtr subtitleBuffer)
 字幕情報更新コールバックのデリゲート型 [詳解]
 
delegate UnityEngine.Shader ShaderDispatchCallback (MovieInfo movieInfo, bool additiveMode)
 シェーダ選択デリゲート型です。 [詳解]
 
override void Dispose ()
 プレーヤオブジェクトの破棄 [詳解]
 
void CreateRendererResource (int width, int height, bool alpha)
 ムービ描画に必要なリソースを生成します。 [詳解]
 
void DisposeRendererResource ()
 ムービ描画に必要なリソースを破棄します。 [詳解]
 
void Prepare ()
 再生準備処理を行います。 [詳解]
 
void PrepareForRendering ()
 再生準備処理を行います。 [詳解]
 
void Start ()
 再生を開始します。 [詳解]
 
void Stop ()
 ムービ再生の停止要求を行います。 [詳解]
 
void StopForSeek ()
 ムービ再生の停止要求を行います。 [詳解]
 
void Pause (bool sw)
 ムービ再生のポーズ切り替えを行います。 [詳解]
 
bool IsPaused ()
 ムービ再生のポーズ状態の取得を行います。 [詳解]
 
bool SetFile (CriFsBinder binder, string moviePath, SetMode setMode=SetMode.New)
 ストリーミング再生用のファイルパスの設定を行います。 [詳解]
 
bool SetData (IntPtr data, System.Int64 dataSize, SetMode setMode=SetMode.New)
 メモリ再生用のデータ設定を行います。 [詳解]
 
bool SetData (byte[] data, System.Int64 datasize, SetMode setMode=SetMode.New)
 
bool SetContentId (CriFsBinder binder, int contentId, SetMode setMode=SetMode.New)
 CPKファイル内のムービファイルの指定を行います。 (コンテンツID指定) [詳解]
 
bool SetFileRange (string filePath, System.UInt64 offset, System.Int64 range, SetMode setMode=SetMode.New)
 パックファイル内のムービファイルの指定を行います。 (ファイル範囲指定) [詳解]
 
void Loop (bool sw)
 ムービ再生のループ切り替えを行います。 [詳解]
 
void SetAudioBaseConcatenation (bool enabled)
 オーディオ基準連結調整フラグを設定 [詳解]
 
void SetMasterTimerType (TimerType timerType)
 マスタータイマー種別を設定します。 [詳解]
 
void SetSeekPosition (int frameNumber)
 シーク位置の設定を行います。 [詳解]
 
void SetMovieEventSyncMode (MovieEventSyncMode mode)
 ムービイベント(キューポイント、字幕)の同期モードの設定をします。 [詳解]
 
void SetSpeed (float speed)
 ムービ再生の速度調整を行います。 [詳解]
 
void SetMaxPictureDataSize (System.UInt32 maxDataSize)
 最大ピクチャデータサイズの指定 [詳解]
 
void SetBufferingTime (float sec)
 入力データのバッファリング時間を指定します。 [詳解]
 
void SetMinBufferSize (int min_buffer_size)
 最小バッファサイズを指定します。 [詳解]
 
void SetAudioTrack (int track)
 メインオーディオトラック番号の設定を行います。 [詳解]
 
void SetSubAudioTrack (int track)
 サブオーディオトラック番号の設定を行います。 [詳解]
 
void SetExtraAudioTrack (int track)
 エクストラオーディオトラック番号の設定を行います。 [詳解]
 
void SetVolume (float volume)
 ムービ再生の音声ボリューム調整を行います。(メインオーディオトラック) [詳解]
 
float GetVolume ()
 ムービ再生の音声ボリュームを取得します。(メインオーディオトラック) [詳解]
 
void SetSubAudioVolume (float volume)
 ムービ再生の音声ボリューム調整を行います。(サブオーディオ) [詳解]
 
float GetSubAudioVolume ()
 ムービ再生の音声ボリュームを取得します。(サブオーディオトラック) [詳解]
 
void SetExtraAudioVolume (float volume)
 ムービ再生の音声ボリューム調整を行います。(エクストラオーディオ) [詳解]
 
float GetExtraAudioVolume ()
 ムービ再生の音声ボリュームを取得します。(エクストラオーディオトラック) [詳解]
 
void SetBusSendLevel (string bus_name, float level)
 メインオーディオトラックのバスセンドレベル調整を行います。 [詳解]
 
void SetSubAudioBusSendLevel (string bus_name, float volume)
 サブオーディオトラックのバスセンドレベル調整を行います。 [詳解]
 
void SetExtraAudioBusSendLevel (string bus_name, float volume)
 エクストラオーディオトラックのバスセンドレベル調整を行います。 [詳解]
 
void SetSubtitleChannel (int channel)
 字幕チャネルの設定を行ないます。 [詳解]
 
void SetShaderDispatchCallback (ShaderDispatchCallback shaderDispatchCallback)
 シェーダ選択デリゲートの設定を行ないます。 [詳解]
 
long GetTime ()
 再生時刻の取得を行います。 [詳解]
 
int GetDisplayedFrameNo ()
 表示中のフレーム番号の取得を行います。 [詳解]
 
bool HasRenderedNewFrame ()
 新しいフレームが描画されたかどうかを確認します。 [詳解]
 
void SetAsrRackId (int asrRackId)
 ASRラックの設定を行います。 [詳解]
 
void SetTimeStretchQuality (float quality)
 音声タイムストレッチの処理品質調整を行います。 [詳解]
 
void UpdateWithUserTime (ulong timeCount, ulong timeUnit)
 ユーザー時刻を指定して状態を更新します。 [詳解]
 
void SetManualTimerUnit (ulong timeUnitN, ulong timeUnitD)
 マニュアルタイマーの時刻が進む単位の設定します。 [詳解]
 
void UpdateWithManualTimeAdvanced ()
 マニュアルタイマーの時刻を進めつつ更新を行います。 [詳解]
 
void Update ()
 状態を更新します。 [詳解]
 
void SyncMasterTimer ()
 マスタータイマーへの時刻同期を行います。 [詳解]
 
bool UpdateMaterial (UnityEngine.Material material)
 マテリアルに現在のフレームを表示するための設定を行います。 [詳解]
 
void PauseOnApplicationPause (bool sw)
 アプリケーション状態の変化に合わせてポーズ状態を設定します。 [詳解]
 

公開変数類

CuePointCallback cuePointCallback
 キューポイントコールバックデリゲートです。 [詳解]
 
StatusChangeCallback statusChangeCallback
 プレーヤ状態変更時コールバックのデリゲートです。 [詳解]
 

プロパティ

bool additiveMode [get, set]
 ブレンドモードを加算合成モードにします。 [詳解]
 
int maxFrameDrop [get, set]
 最大フレームドロップ数を設定します。 [詳解]
 
bool applyTargetAlpha [get, set]
 オブジェクトの透過度を適用するかを設定します。 [詳解]
 
bool uiRenderMode [get, set]
 UIコンポーネント用のシェーダー設定を適用するかを設定します。 [詳解]
 
bool isFrameAvailable [get]
 有効なフレームを所持しているかどうか [詳解]
 
MovieInfo movieInfo [get]
 再生中のムービ情報を取得します。 [詳解]
 
FrameInfo frameInfo [get]
 再生中のムービのフレーム情報を取得します。 [詳解]
 
Status status [get]
 プレーヤのステータスを取得します。 [詳解]
 
Status nativeStatus [get]
 内部ハンドルのステータスを取得します。 [詳解]
 
System.Int32 numberOfEntries [get]
 連結再生エントリー数を取得します。 [詳解]
 
System.IntPtr subtitleBuffer [get]
 字幕データバッファへのポインタを取得します。 [詳解]
 
int subtitleSize [get]
 字幕データバッファのサイズを取得します。 [詳解]
 
CriAtomExPlayer atomExPlayer [get]
 CriAtomExPlayer ハンドルを取得します。 [詳解]
 
CriAtomExPlayer subAtomExPlayer [get]
 CriAtomExPlayer ハンドルの取得(サブオーディオトラック) [詳解]
 
CriAtomExPlayer extraAtomExPlayer [get]
 CriAtomExPlayer ハンドルの取得(エクストラトラック) [詳解]
 
CriManaMoviePlayerHolder playerHolder [get, set]
 プレーヤーを保持するオブジェクトです。 [詳解]
 

イベント

SubtitleChangeCallback OnSubtitleChanged
 字幕情報更新コールバック [詳解]
 

詳解

ムービ再生制御を行うネイティブプレーヤのラッパークラスです。

説明:

通常、 CriManaMovieControllerCriManaMovieControllerForUI コンポーネントから取り出して使用します。 再生停止・ポーズ以上の複雑な再生制御を行う場合本クラスを使用してください。
コンポーネントを使用せずに直接ムービ再生を制御したい場合、本オブジェクトを直接生成して使用することも可能です。
注意:
本クラスのオブジェクトを直接アプリケーションから生成した場合、再生終了後に Player::Dispose 関数で必ず破棄してください。

列挙型メンバ詳解

enum Status
strong

プレーヤの状態を示す値です。

参照
Player::status
列挙値
Stop 

停止中

Dechead 

ヘッダ解析中

WaitPrep 

バッファリング開始停止中

Prep 

再生準備中

Ready 

再生準備完了

Playing 

再生中

PlayEnd 

再生終了

Error 

エラー

StopProcessing 

停止処理中

ReadyForRendering 

描画準備完了

enum SetMode
strong

ファイルをセットする際のモードです。

参照
Player::SetFile, Player::SetContentId, Player::SetFileRange
列挙値
New 

次回の再生で利用するムービを指定

Append 

連結再生キューに追加する

AppendRepeatedly 

連結再生キューに次のムービが登録されるまで繰り返し追加する

enum MovieEventSyncMode
strong

ムービイベント(キューポイント、字幕)の同期モードです。

参照
Player::SetMovieEventSyncMode
列挙値
FrameTime 

フレーム時刻に同期します

PlayBackTime 

タイマ種別に基づいた再生時刻に同期します

enum AudioTrack
strong

オーディオトラックを設定する際のモードです。

参照
Player::SetAudioTrack, Player::SetSubAudioTrack
列挙値
Off 

オーディオ再生OFFの指定値

Auto 

オーディオトラックのデフォルト値

enum TimerType : int
strong

タイマー種別です。

参照
Player::SetMasterTimerType
列挙値
None 

時刻同期無し

System 

システム時刻

Audio 

メインオーディオトラックのオーディオ時刻

User 

ユーザー独自のタイマ

Manual 

マニュアルタイマ

関数詳解

delegate void CuePointCallback ( ref EventPoint  eventPoint)

キューポイントコールバックデリゲート型です。

引数
eventPointイベントポイント情報
説明:
キューポイントコールバックデリゲート型です。
注意:
キューポイントコールバック内では、ムービ再生をコントロールする関数を呼び出してはいけません。
参照
Player::cuePointCallback
delegate void StatusChangeCallback ( Status  status)

プレーヤ状態変更時コールバックのデリゲート型です。

引数
status変更後のプレーヤ状態
説明:
プレーヤ状態変更時コールバックのデリゲート型です。
参照
Player::statusChangeCallback
delegate void SubtitleChangeCallback ( IntPtr  subtitleBuffer)

字幕情報更新コールバックのデリゲート型

引数
subtitleBuffer字幕文字列へのポインタ
説明:
字幕情報更新コールバックのデリゲート型です。
参照
Player::OnSubtitleChanged
delegate UnityEngine.Shader ShaderDispatchCallback ( MovieInfo  movieInfo,
bool  additiveMode 
)

シェーダ選択デリゲート型です。

引数
movieInfoムービ情報
additiveMode加算合成するかどうか
説明:
シェーダ選択デリゲート型です。
参照
Player::SetShaderDispatchCallback
override void Dispose ( )
inline

プレーヤオブジェクトの破棄

説明:
プレーヤオブジェクトを破棄します。
独自に CriMana::Player オブジェクトを生成した場合、必ず Dispose 関数を呼び出してください。 本関数を実行した時点で、プレーヤ作成時に確保されたリソースが全て解放されます。
void CreateRendererResource ( int  width,
int  height,
bool  alpha 
)
inline

ムービ描画に必要なリソースを生成します。

引数
widthムービの幅
heightムービの高さ
alphaアルファムービか否か
説明:
ムービ描画に必要なリソースを生成します。
通常はムービ描画に必要なリソースの生成はプレーヤ内部で自動的に行いますが、 Player::Prepare および Player::Start を呼び出す前に本関数を呼び出すことでリソースの生成を事前に行うことができます。
ただし、この関数で事前に生成したリソースの幅、高さが不十分などの理由で
実際に再生するムービの描画に利用できない場合はリソースは破棄されて再生成されます。
参照
Player::DisposeRendererResource
void DisposeRendererResource ( )
inline

ムービ描画に必要なリソースを破棄します。

説明:
ムービ描画に必要なリソースを破棄します。
リソースの破棄は Player::Dispose 時に行われますが、 本関数で明示的に行うことができます。
参照
Player::CreateRendererResource
void Prepare ( )
inline

再生準備処理を行います。

説明:
ムービ再生は開始せず、ヘッダ解析と再生準備(バッファリング)のみを行って待機する関数です。

再生対象のムービを指定した後、本関数を呼び出してください。 再生準備が完了すると、プレーヤの状態は Player.Status.Ready 状態になります。

本関数は Player.Status.Stop 状態、また Player.Status.PlayEnd 状態でのみ呼び出してください。
参照
Player::Status
void PrepareForRendering ( )
inline

再生準備処理を行います。

説明:
ムービ再生は開始せず、ヘッダ解析と再生準備(バッファリングと一フレーム目の用意)のみを行って待機する関数です。
ムービ再生開始の頭出しをそろえたい場合に本関数を使用します。

再生対象のムービを指定した後、本関数を呼び出してください。 再生準備が完了すると、プレーヤの状態は Player.Status.ReadyForRendering 状態になり、 CriMana.Player.Play 関数ですぐに描画開始されます。

本関数は Player.Status.Stop 状態、 Player.Status.PlayEnd 状態、 または Player.Status.Prepare 状態でのみ呼び出してください。
参照
Player::Status
void Start ( )
inline

再生を開始します。

説明:
ムービ再生を開始します。
再生が開始されると、状態は Player.Status.Playing になります。
注意:
本関数を呼び出し後、実際にムービの描画が開始されるまで数フレームかかります。
ムービ再生の頭出しを行いたい場合は、 Player.Prepare 関数で事前に再生準備を行ってください。
参照
Player::Stop, Player::Status
void Stop ( )
inline

ムービ再生の停止要求を行います。

説明:
ムービ再生の停止要求を出します。本関数は即時復帰関数です。
本関数を呼び出しても、再生はすぐには止まりません。
参照
Player::Status
void StopForSeek ( )
inline

ムービ再生の停止要求を行います。

説明:
ムービ再生の停止要求を出します。本関数は即時復帰関数です。
本関数を呼び出しても、再生はすぐには止まりません。
内部的には再生を停止しますが、描画状態はキープされます。
再生中にシークを行う場合など、描画したままで停止する必要がある場合にご利用ください。
参照
Player::Start, Player::Status
void Pause ( bool  sw)
inline

ムービ再生のポーズ切り替えを行います。

引数
swポーズスイッチ(true: ポーズ, false: ポーズ解除)
説明:
ポーズのON/OFFを切り替えます。
引数にtrueを指定する一時停止、falseを指定すると再生再開です。
Player::Stop 関数を呼び出すと、ポーズ状態は解除されます
参照
Player::IsPaused
bool IsPaused ( )
inline

ムービ再生のポーズ状態の取得を行います。

戻り値
ポーズ状態
説明:
ポーズのON/OFFを取得します。
参照
Player::Pause
bool SetFile ( CriFsBinder  binder,
string  moviePath,
SetMode  setMode = SetMode.New 
)
inline

ストリーミング再生用のファイルパスの設定を行います。

引数
binderCPKファイルをバインド済みのバインダ
moviePathCPKファイル内のコンテンツパス
setModeムービの追加モード
戻り値
セットに成功したか
説明:
ストリーミング再生用のファイルパスを設定します。
第一引数の binder にCPKファイルをバインドしたバインダハンドルを指定することにより、 CPKファイルからのムービ再生が行えます。
CPKからではなく直接ファイルからストリーミングする場合は、binder に null を指定ください。
第三引数の setMode に Player::SetMode::Append を与えると、連結再生を行います。 この場合、関数は false を返す可能性があります。
連結再生できるムービファイルには以下の条件があります。
  • ビデオの解像度、フレームレート、コーデックが全て同じ
  • アルファ情報の有無が一致
  • 音声トラックの構成(トラック番号および各チャンネル数)、コーデックが全て同じ
バインダを指定しない場合(nullを指定した場合):
- moviePath プロパティを設定した場合と等価です。
  • 相対パスを指定した場合は StreamingAssets フォルダからの相対でファイルをロードします。
  • 絶対パスを指定した場合には指定したパスでファイルをロードします。
バインダを指定した場合:
バインダ設定後に moviePath プロパティを設定した場合は、 バインダにバインドされているCPKファイルからムービ再生が行われます。
注意:
moviePath として URL を指定することもできます。 例えば "http://hoge-server/fuga-movie.usm" のような文字列を指定することで、 HTTP サーバ上のムービファイルをストリーミング再生することが可能です。ただしこの機能は非推奨です。 また、通信プロトコルとして HTTP にしか対応していません。HTTPS には非対応です。
参照
Player::SetContentId, Player::SetFileRange, Player::moviePath
bool SetData ( IntPtr  data,
System.Int64  dataSize,
SetMode  setMode = SetMode.New 
)
inline

メモリ再生用のデータ設定を行います。

引数
dataメモリ上にあるムービーデータ
dataSizeデータのサイズ
setModeムービの追加モード
戻り値
セットに成功したか
説明:
メモリ再生用のデータ設定を行います。
第一引数と第二引数でデータのアドレスとサイズを指定します。 第三引数の setMode に Player::SetMode::Append を与えると、連結再生を行います。 この場合、関数は false を返す可能性があります。
連結再生できるムービファイルの条件は、 Player::SetFile 関数と同じです。
注意:
SetDataに渡すバッファアドレスは、ガベージコレクターに移動されないようにアプリケーション 側で事前に固定したものを渡してください。
また、メモリの固定解除は再生終了状態、再生停止状態、またはプレーヤオブジェクトの破棄後に行ってください。
参照
Player::SetFile, Player::SetContentId, Player::SetFileRange, Player::moviePath
bool SetData ( byte[]  data,
System.Int64  datasize,
SetMode  setMode = SetMode.New 
)
inline
非推奨:
削除予定の非推奨APIです。 Player.SetData(IntPtr data, System.Int64 dataSize, SetMode setMode = SetMode.New) の使用を検討してください。
bool SetContentId ( CriFsBinder  binder,
int  contentId,
SetMode  setMode = SetMode.New 
)
inline

CPKファイル内のムービファイルの指定を行います。 (コンテンツID指定)

引数
binderCPKファイルをバインド済みのバインダ
contentIdCPKファイル内のコンテンツID
setModeムービの追加モード
戻り値
セットに成功したか
説明:
ストリーミング再生用のコンテンツIDを設定します。
引数にバインダとコンテンツIDを指定することで、CPKファイル内の任意のムービデータを読み込み元にすることが出来ます。 第三引数の setMode に Append を与えると、連結再生を行います。この場合、関数は false を返す可能性があります。
連結再生できるムービファイルには以下の条件があります。
  • ビデオの解像度、フレームレート、コーデックが全て同じ
  • アルファ情報の有無が一致
  • 音声トラックの構成(トラック番号および各チャンネル数)、コーデックが全て同じ
参照
Player::SetFile, Player::SetFileRange, Player::SetData
bool SetFileRange ( string  filePath,
System.UInt64  offset,
System.Int64  range,
SetMode  setMode = SetMode.New 
)
inline

パックファイル内のムービファイルの指定を行います。 (ファイル範囲指定)

引数
filePathパックファイルへのパス
offsetパックファイル内のムービファイルのデータ開始位置
rangeパックファイル内のムービファイルのデータ範囲
setModeムービの追加モード
戻り値
セットに成功したか
説明:
ストリーミング再生を行いたいムービファイルをパッキングしたファイルを指定します。
引数にオフセット位置とデータ範囲を指定することで、 パックファイル内の任意のムービデータを読み込み元にすることが出来ます。 第二引数の range に -1 を指定した場合はパックファイルの終端までをデータ範囲とします。 第四引数の setMode に Player::SetMode.Append を与えると、連結再生を行います。 この場合、関数は false を返す可能性があります。
連結再生できるムービファイルには以下の条件があります。
  • ビデオの解像度、フレームレート、コーデックが全て同じ
  • アルファ情報の有無が一致
  • 音声トラックの構成(トラック番号および各チャンネル数)、コーデックが全て同じ
参照
Player::SetFile, Player::SetContentId, Player::SetData, Player::moviePath
void Loop ( bool  sw)
inline

ムービ再生のループ切り替えを行います。

引数
swループスイッチ(true: ループモード, false: ループモード解除)
説明:
ループ再生のON/OFFを切り替えます。デフォルトはループOFFです。
ループ再生をONにした場合は、ムービ終端まで再生しても再生は終了せず先頭に戻って再生を 繰り返します。
void SetAudioBaseConcatenation ( bool  enabled)
inline

オーディオ基準連結調整フラグを設定

引数
enabled有効化フラグ
説明:
ループ再生と連結再生にオーディオ基準の連結調整を行うかどうかの設定を行います。
再生開始前に本関数を実行してください。
デフォルトの設定は無効です。

usmのAV尺に差がある状態でループ再生や連結再生を繰り返していると、
ズレが蓄積していき、AV同期ズレが発生したり、再生が途中で止まってしまう事があります。
本関数で設定を有効にすると、ライブラリ内部で自動的にオーディオ時刻を基準とした調整を行います。
void SetMasterTimerType ( TimerType  timerType)
inline

マスタータイマー種別を設定します。

引数
timerTypeマスタータイマー種別
説明:
動画再生のタイマーモードを設定します。
デフォルトはハンドル作成時に指定するシステムタイマーです。
ビデオフレームの表示タイミングを任意のタイマと同期させたい場合は、 ユーザータイマを指定してください。
その場合、定期的に CriWare.CriMana::Player::UpdateWithUserTime を呼び出してください。
参照
Player::UpdateWithUserTime, Player::SetManualTimerUnit, Player::UpdateWithManualTimeAdvanced
void SetSeekPosition ( int  frameNumber)
inline

シーク位置の設定を行います。

引数
frameNumberシーク先のフレーム番号
説明:
シーク再生を開始するフレーム番号を指定します。
本関数を実行しなかった場合、またはフレーム番号0を指定した場合はムービの先頭から再生を開始します。 指定したフレーム番号が、ムービデータの総フレーム数より大きかったり負の値だった場合もムービの先頭から再生します。
void SetMovieEventSyncMode ( MovieEventSyncMode  mode)
inline

ムービイベント(キューポイント、字幕)の同期モードの設定をします。

引数
modeムービイベントの同期モード
説明:
ムービイベント(キューポイント、字幕)の同期モードの設定をします。
デフォルトではフレーム時刻に同期してイベントがトリガされます。
ムービ再生時刻と同期させたいときはMovieEventSyncMode::PlayBackTimeを指定してください。
注意:
本関数は再生開始前に呼び出してください。
void SetSpeed ( float  speed)
inline

ムービ再生の速度調整を行います。

引数
speed再生速度
説明:
ムービの再生速度を指定します。
再生速度は、0.0f〜3.0fの範囲で実数値を指定します。
1.0fが指定された場合はデータ本来の速度で再生を行います。
例えば、2.0fを指定した場合、ムービはムービデータのフレームレートの2倍の速度で再生されます。
再生速度のデフォルト値は1.0fです。

Advanced Audio Mode を設定した Mana プレーヤーに対し再生速度を設定した場合は 本関数を呼ぶとサウンド再生時にタイムストレッチ機能を使用できるようになり、音声のピッチを変えずに 倍速再生できます。タイムストレッチで再生できる音声は0.5倍~2.0倍の再生速度に対応しています。

注意:
再生中のムービに対する再生速度の変更は、音声がないムービを再生した場合のみ対応しています。
音声つきムービに対して再生中の速度変更を行うと正常動作しません。音声つきのムービの場合は、一度再生停止 してから、再生速度を変更し、目的のフレーム番号からシーク再生をしてください。

参照
Player::SetTimeStretchQuality
void SetMaxPictureDataSize ( System.UInt32  maxDataSize)
inline

最大ピクチャデータサイズの指定

引数
maxDataSize最大ピクチャデータサイズ
説明:
最大ピクチャデータサイズの設定をします。
通常再生では、本関数を使用する必要はありません。

Sofdec.Primeコーデック以外のムービを連結再生する場合、 本関数で最大ピクチャデータサイズを設定してから再生を開始してください。
設定すべきデータサイズは、USMファイルをWizzに入力した際、「Maximum chunk size」と表示される数値の、全USMの最大値
もしくは連結再生予定の全USMファイルの MovieInfo.maxChunkSize の最大値となります。
void SetBufferingTime ( float  sec)
inline

入力データのバッファリング時間を指定します。

引数
secバッファリング時間 [秒]
説明:
ストリーミング再生でバッファリングする入力データの量を秒単位の時間で指定します。
Manaプレーヤは、バッファリング時間とムービのビットレート等から読み込みバッファのサイズを決定します。
デフォルトのバッファリング時間は、1秒分です。
バッファリング時間に 0.0f を指定した場合、バッファリング時間はライブラリのデフォルト値となります。
void SetMinBufferSize ( int  min_buffer_size)
inline

最小バッファサイズを指定します。

引数
min_buffer_size最小バッファサイズ [byte]
説明:
ムービデータの最小バッファサイズを指定します。
最小バッファサイズを指定した場合、指定サイズ分以上の入力バッファがManaプレーヤ内部で確保することが保証されます。
単純再生においては本関数を使用する必要はありません。 極端にビットレートが異なるようなムービを連結再生する場合に使用します。
最小バッファサイズに 0を指定した場合、最小バッファサイズはムービデータの持つ値となります。(デフォルト)
void SetAudioTrack ( int  track)
inline

メインオーディオトラック番号の設定を行います。

引数
trackトラック番号
説明:
ムービが複数のオーディオトラックを持っている場合に、再生するオーディオを指定します。
本関数を実行しなかった場合は、もっとも若い番号のオーディオトラックを再生します。
データが存在しないトラック番号を指定した場合は、オーディオは再生されません。

トラック番号としてAudioTrack.Offを指定すると、例えムービにオーディオが 含まれていたとしてもオーディオは再生しません。

また、デフォルト設定(もっとも若いチャネルのオーディオを再生する)にしたい場合は、 チャネルとしてAudioTrack.Autoを指定してください。
備考:
再生中のトラック変更は未対応です。変更前のフレーム番号を記録しておいてシーク再生 してください。
void SetSubAudioTrack ( int  track)
inline

サブオーディオトラック番号の設定を行います。

引数
trackトラック番号
説明:
ムービが複数のオーディオトラックを持っている場合に、再生するオーディオを指定します。
本関数を実行しなかった場合(デフォルト設定)はサブオーディオからは何も再生されません。 また、データが存在しないトラック番号を指定した場合、サブオーディオトラックとして メインオーディオと同じトラックを指定した場合もサブオーディオからは何も再生されません。
備考:
再生中のトラック変更は未対応です。変更前のフレーム番号を記録しておいてシーク再生 してください。
void SetExtraAudioTrack ( int  track)
inline

エクストラオーディオトラック番号の設定を行います。

引数
trackトラック番号
説明:
ムービが複数のオーディオトラックを持っている場合に、再生するオーディオを指定します。
本関数を実行しなかった場合(デフォルト設定)はエクストラオーディオからは何も再生されません。 また、データが存在しないトラック番号を指定した場合、エクストラオーディオトラックとして メインオーディオと同じトラックを指定した場合もエクストラオーディオからは何も再生されません。
備考:
再生中のトラック変更は未対応です。変更前のフレーム番号を記録しておいてシーク再生 してください。
void SetVolume ( float  volume)
inline

ムービ再生の音声ボリューム調整を行います。(メインオーディオトラック)

引数
volumeボリューム
説明:
ムービのメインオーディオトラックの出力音声ボリュームを指定します。
ボリューム値には、0.0f〜1.0fの範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ボリュームのデフォルト値は1.0fです。
備考:
0.0f〜1.0fの範囲外を指定した場合は、それぞれの最小・最大値にクリップされます。
float GetVolume ( )
inline

ムービ再生の音声ボリュームを取得します。(メインオーディオトラック)

説明:
ムービのメインオーディオトラックの出力音声ボリュームを取得します。
ボリュームの値域は、0.0f以上1.0f以下です。
void SetSubAudioVolume ( float  volume)
inline

ムービ再生の音声ボリューム調整を行います。(サブオーディオ)

引数
volumeボリューム
説明:
ムービのサブオーディオトラックの出力音量ボリュームを指定します。
ボリューム値には、0.0f〜1.0fの範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ボリュームのデフォルト値は1.0fです。
備考:
0.0f〜1.0fの範囲外を指定した場合は、それぞれの最小・最大値にクリップされます。
float GetSubAudioVolume ( )
inline

ムービ再生の音声ボリュームを取得します。(サブオーディオトラック)

説明:
ムービのサブオーディオトラックの出力音声ボリュームを取得します。
ボリュームの値域は、0.0f以上1.0f以下です。
void SetExtraAudioVolume ( float  volume)
inline

ムービ再生の音声ボリューム調整を行います。(エクストラオーディオ)

引数
volumeボリューム
説明:
ムービのエクストラオーディオトラックの出力音量ボリュームを指定します。
ボリューム値には、0.0f〜1.0fの範囲で実数値を指定します。
ボリューム値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームで出力されます。
0.0fを指定した場合、音声はミュートされます(無音になります)。
ボリュームのデフォルト値は1.0fです。
備考:
0.0f〜1.0fの範囲外を指定した場合は、それぞれの最小・最大値にクリップされます。
float GetExtraAudioVolume ( )
inline

ムービ再生の音声ボリュームを取得します。(エクストラオーディオトラック)

説明:
ムービのエクストラオーディオトラックの出力音声ボリュームを取得します。
ボリュームの値域は、0.0f以上1.0f以下です。
void SetBusSendLevel ( string  bus_name,
float  level 
)
inline

メインオーディオトラックのバスセンドレベル調整を行います。

引数
bus_nameバス名
levelバスセンドレベル
説明:
ムービのメインオーディオトラックのバスセンドレベル(振幅レベル)と、センド先のバス名を指定します。
バスセンドレベル値には、0.0f〜1.0fの範囲で実数値を指定します。
バスセンドレベル値は音声データの振幅に対する倍率です(単位はデシベルではありません)。
例えば、1.0fを指定した場合、原音はそのままのボリュームでバスに出力されます。
0.0fを指定した場合、バスには無音が出力されます。
void SetSubAudioBusSendLevel ( string  bus_name,
float  volume 
)
inline

サブオーディオトラックのバスセンドレベル調整を行います。

引数
bus_nameバス名
volumeバスセンドレベル
説明:
ムービのサブオーディオトラックのバスセンドレベル(振幅レベル)と、センド先のバス名を指定します。
本関数の動作仕様は SetBusSendLevel と同様です。
void SetExtraAudioBusSendLevel ( string  bus_name,
float  volume 
)
inline

エクストラオーディオトラックのバスセンドレベル調整を行います。

引数
bus_nameバス名
volumeバスセンドレベル
説明:
ムービのエクストラオーディオトラックのバスセンドレベル(振幅レベル)と、センド先のバス名を指定します。
本関数の動作仕様は SetBusSendLevel と同様です。
void SetSubtitleChannel ( int  channel)
inline

字幕チャネルの設定を行ないます。

引数
channel字幕チャネル番号
説明:
取得する字幕チャネルを設定します。デフォルトは字幕取得無しです。
デフォルト設定(字幕取得無し)にしたい場合は、チャネルとして -1 を指定してください。
ムービ再生中に字幕チャンネルを切り替えることも可能です。ただし、実際のチャネルが切り替わるのは 設定した直後の次の字幕からとなります。
参照
Player::subtitleBuffer, Player::subtitleBuffer
void SetShaderDispatchCallback ( ShaderDispatchCallback  shaderDispatchCallback)
inline

シェーダ選択デリゲートの設定を行ないます。

引数
shaderDispatchCallbackシェーダ選択デリゲート
説明:
ユーザ定義シェーダを決定するデリゲートの設定を行ないます
注意:
Player::Prepare 関数および Player::Start 関数より前に設定する必要があります。
参照
Player::ShaderDispatchCallback
long GetTime ( )
inline

再生時刻の取得を行います。

戻り値
再生時刻 (単位:マイクロ秒)
説明:
現在再生中のムービの再生時刻を取得します。
再生開始前および再生停止後は、0 を返します。
単位はマイクロ秒です。
int GetDisplayedFrameNo ( )
inline

表示中のフレーム番号の取得を行います。

戻り値
フレーム番号
説明:
現在表示中のフレーム番号を取得します。
表示開始前および再生停止後は、-1 を返します。
プラットフォームやコーデックにより、取得可能なフレーム情報よりも 前の番号が返される場合があります。
bool HasRenderedNewFrame ( )
inline

新しいフレームが描画されたかどうかを確認します。

戻り値
フレームが描画されたかのフラグ
説明:
現在の再生制御呼び出し後に、新しいフレームが画面上に描画されたかどうかを返します。
void SetAsrRackId ( int  asrRackId)
inline

ASRラックの設定を行います。

引数
asrRackIdASRラックID
説明:
再生する音声の出力ASRラックIDを指定します。
出力ASRラックIDの設定はメインオーディオトラックとサブオーディオトラックの両方に反映されます。
注意:
再生中の変更はできません。再生中に本APIを呼び出した場合、次のムービ再生から設定が反映されます。
参照
CriAtomExAsrRack::rackId
void SetTimeStretchQuality ( float  quality)
inline

音声タイムストレッチの処理品質調整を行います。

引数
quality品質
説明:
音声タイムストレッチが行われる時の処理品質を指定します。
設定可能な値の範囲は 0 ~ 10 までです。
数値が高いほど音声の品質が上がりますが、CPU負荷も上昇します。
品質を指定しない場合、デフォルト設定の 2 が使用されます。
参照
Player::SetSpeed
void UpdateWithUserTime ( ulong  timeCount,
ulong  timeUnit 
)
inline

ユーザー時刻を指定して状態を更新します。

説明:
プレーヤの状態を更新します。
CriWare.CriMana::Player::SetMasterTimerType でユーザータイマーを有効にした場合、本関数を 定期的に呼び出してください。
注意:
本関数の呼び出しが滞るとムービ再生ががたつく場合があります。
ユーザタイマを早送り又はスローで進めるとマスタタイマの精度が悪くなり、 正しい時刻でフレームを取得しにくくなるため、通常は等倍速再生で 本関数をご使用ください。
参照
Player::SetMasterTimerType
void SetManualTimerUnit ( ulong  timeUnitN,
ulong  timeUnitD 
)
inline

マニュアルタイマーの時刻が進む単位の設定します。

引数
timeUnitN時刻が進む単位の分子
timeUnitD時刻が進む単位の分母
説明:
マニュアルタイマーの時刻が進む単位を有理数形式で設定します。
CriWare.CriMana::Player::SetMasterTimerType でマニュアルタイマ―ーを有効にした場合、本関数で 時刻が進む単位の設定を行ってください。
「分子(timer_manual_unit_n) / 分母(timer_manual_unit_d) = 時刻が進む単位(秒)」になります。
例えば 29.97fps を設定したい場合、1001 と 30000 を指定してください。
参照
Player::SetMasterTimerType, Player::UpdateWithManualTimeAdvanced
void UpdateWithManualTimeAdvanced ( )
inline

マニュアルタイマーの時刻を進めつつ更新を行います。

説明:
マニュアルタイマ―でハンドルの時刻を進め、描画の更新を行います。
CriWare.CriMana::Player::SetMasterTimerType でマニュアルタイマ―ーを有効にした場合、本関数を定期的に 呼び出す必要があります。
プレーヤステータスがPLAYING(再生中)の時に時刻が進みます。
ポーズ中は本関数を呼び出しても時刻は進まず、再生の開始や停止時に時刻は0にリセットされます。
参照
Player::SetMasterTimerType, Player::SetManualTimerUnit
void Update ( )
inline

状態を更新します。

説明:
プレーヤの状態を更新します。
アプリケーションは、この関数を定期的に実行する必要があります。
注意:
本関数の呼び出しが滞るとムービ再生ががたつく場合があります。
void SyncMasterTimer ( )
inline

マスタータイマーへの時刻同期を行います。

説明:
プレーヤハンドルの状態をマスタータイマーに同期させます。
備考:
本関数は、 CriWare.CriMana::Player::Update 内で同様の処理が行われるため、ユーザーが定期的に呼び出す必要はありません。
同期的な再生など、時刻に対して厳密な再生処理を行いたい場合にご利用いただけます。
bool UpdateMaterial ( UnityEngine.Material  material)
inline

マテリアルに現在のフレームを表示するための設定を行います。

引数
material設定対象のマテリアル
戻り値
設定を行なえたか
説明:
マテリアルに現在のフレームを表示するためにシェーダや各種パラメータを設定します。
void PauseOnApplicationPause ( bool  sw)
inline

アプリケーション状態の変化に合わせてポーズ状態を設定します。

引数
swポーズスイッチ(true: ポーズ, false: ポーズ解除)
説明:
ポーズのON/OFFを切り替えます。
引数にtrueを指定する一時停止、falseを指定すると再生再開です。
本関数はアプリケーションの状態変化に合わせて呼び出すことを想定した関数です。
それ以外の場合は、 CriWare.CriMana::Player::Pause 関数を利用してください。
備考:
本関数で行われるポーズ処理は、通常のポーズ処理に加えて描画関連の処理もトリガーされます。
プラグインが用意した CriWare.CriManaMovieMaterial 等のコンポーネントを利用する場合は内部で自動的に呼び出されるため、ユーザーが呼び出す必要はありません。
CriWare.CriMana.Player 関数を単体で生成して利用する場合には、本関数を MonoBehaviour.OnApplicationPause 内で適切に呼び出してください。

メンバ詳解

CuePointCallback cuePointCallback

キューポイントコールバックデリゲートです。

説明:
キューポイントコールバックデリゲートです。
注意:
Player::Prepare 関数および Player::Start 関数より前に設定する必要があります。
参照
Player::CuePointCallback
StatusChangeCallback statusChangeCallback

プレーヤ状態変更時コールバックのデリゲートです。

説明:
プレーヤ状態変更時コールバックのデリゲートです。
参照
Player::StatusChangeCallback

プロパティ詳解

bool additiveMode
getset

ブレンドモードを加算合成モードにします。

説明:
再生時のシェーダ選択コールバックに渡される引数になります。
注意:
Player::Prepare 関数および Player::Start 関数より前に設定する必要があります。
参照
Player::ShaderDispatchCallback
int maxFrameDrop
getset

最大フレームドロップ数を設定します。

説明:
再生に対して描画フレームの更新が間に合っていない場合に一度の更新でドロップする フレームの最大数を設定します。
アプリケーションのフレームレートが低下している場合や、フレームレート以上に 動画の再生速度を上げた場合に、意図通りに再生が行えるようになります。
bool applyTargetAlpha
getset

オブジェクトの透過度を適用するかを設定します。

説明:
アタッチしたオブジェクトの透過度に応じて、ムービも透過させるかを設定します。
注意:
Player::Prepare 関数および Player::Start 関数より前に設定する必要があります。
bool uiRenderMode
getset

UIコンポーネント用のシェーダー設定を適用するかを設定します。

説明:
ムービを描画するシェーダーについて、UIコンポーネント用の描画設定を適用するかを設定します。
デフォルト値は false です。
注意:
Player::Prepare 関数および Player::Start 関数より前に設定する必要があります。
bool isFrameAvailable
get

有効なフレームを所持しているかどうか

説明:
有効なフレームを所持しているかどうかを返します。
備考:
独自で描画を行う場合、本フラグで描画の切り替え制御を行ってください。
MovieInfo movieInfo
get

再生中のムービ情報を取得します。

引数
movieInfoムービ情報
説明:
再生を開始したムービのヘッダ解析結果の情報です。
ムービの解像度、フレームレートなどの情報が参照できます。
注意:
プレーヤのステータスが Player.Status.WaitPrep〜Player.Status.Playing 状態の間のみ情報が取得できます。
それ以外の状態は null が返ります。
参照
Player::Status
FrameInfo frameInfo
get

再生中のムービのフレーム情報を取得します。

引数
frameInfoフレーム情報
説明:
現在描画中のフレーム情報を取得できます。
備考:
再生状態のみ情報が取得できます。それ以外の状態では null が返ります。
Status status
get

プレーヤのステータスを取得します。

戻り値
ステータス
説明:
プレーヤのステータスを取得します。
Status nativeStatus
get

内部ハンドルのステータスを取得します。

戻り値
ステータス
説明:
プラグインが内部で利用している Mana プレーヤハンドルのステータスを取得します。
詳細なデバッグや状態管理に利用することを想定しています。
アプリケーションで動画の再生状態を確認したい場合は、 Player::status を利用してください。
参照
Player::status
System.Int32 numberOfEntries
get

連結再生エントリー数を取得します。

説明:
連結再生エントリー数を取得します。
このプロパティで得られる値は、読み込みが開始されていないエントリー数です。
連結する数フレーム前に、エントリーに登録されているムービの読み込みが開始されます。
System.IntPtr subtitleBuffer
get

字幕データバッファへのポインタを取得します。

説明:
字幕データバッファへのポインタを取得します。
表示時刻になっている字幕データが格納されています。
備考:
字幕データの文字コードは動画ファイルのエンコード時に指定した字幕ファイルに従います。
字幕ファイルに対応した文字コードでの文字列への変換を行ってください。
注意:
ポインタが示す文字列は終端文字を含まない場合があります。
必ずポインタと共にバッファサイズを指定するAPIを利用して変換を行ってください
参照
Player::SetSubtitleChannel, Player::subtitleSize
int subtitleSize
get

字幕データバッファのサイズを取得します。

説明:
字幕データバッファのサイズを取得します。
Player::subtitleBuffer から字幕データを取得する際に使用してください。
参照
Player::SetSubtitleChannel, Player::subtitleBuffer
CriAtomExPlayer atomExPlayer
get

CriAtomExPlayer ハンドルを取得します。

説明:
動画に含まれる音声データの再生に利用される CriAtomExPlayer ハンドルを取得します。
本プロパティは、 CriManaMovieMaterial::advancedAudio により Advanced Audio モードを 有効にした場合にのみ有効なハンドルが取得可能です。
参照
CriManaMovieMaterial::advancedAudio
CriAtomExPlayer subAtomExPlayer
get

CriAtomExPlayer ハンドルの取得(サブオーディオトラック)

説明:
動画に含まれる音声データの再生に利用される CriAtomExPlayer ハンドルを取得します。
本プロパティで取得できる CriAtomExPlayer はサブオーディオトラックに利用されるものです。
CriManaMovieMaterial.advancedAudio により Advanced Audio モードを
有効にした場合にのみ有効なハンドルが取得可能です。
参照
CriManaMovieMaterial.advancedAudio, CriAtomExPlayer, SetSubAudioTrack
CriAtomExPlayer extraAtomExPlayer
get

CriAtomExPlayer ハンドルの取得(エクストラトラック)

説明:
動画に含まれる音声データの再生に利用される CriAtomExPlayer ハンドルを取得します。
本プロパティで取得できる CriAtomExPlayer はエクストラオーディオトラックに利用されるものです。
CriManaMovieMaterial.advancedAudio により Advanced Audio モードを
有効にした場合にのみ有効なハンドルが取得可能です。
参照
CriManaMovieMaterial.advancedAudio, CriAtomExPlayer, SetExtraAudioTrack
CriManaMoviePlayerHolder playerHolder
getset

プレーヤーを保持するオブジェクトです。

説明:
有効な CriWare.CriMana::Player を破棄するまで保持するための MonoBehaviour オブジェクトです。 GPUやレンダリングスレッドで取り扱われるアンマネージドリソースの削除処理を コルーチンで行うために、プラグイン内部で利用します。

イベント詳解

SubtitleChangeCallback OnSubtitleChanged

字幕情報更新コールバック

説明:
字幕情報更新コールバックイベントです。
注意:
本イベントから得られる文字列ポインタは終端文字を含まない場合があります。
必ずポインタと共にバッファサイズを指定するAPIを利用して変換を行ってください
参照
Player::SubtitleChangeCallback, subtitleSize

このクラス詳解は次のファイルから抽出されました: