CRIWARE Unity Plugin Manual  Last Updated: 2024-07-12
Player类 参考

是用于控制视频播放的本机Player的Wrapper类。 更多...

继承自 CriDisposable .

Public 类型

enum  Status {
  Stop, Dechead, WaitPrep, Prep,
  Ready, Playing, PlayEnd, Error,
  StopProcessing, ReadyForRendering
}
 显示Player状态的值。 更多...
 
enum  SetMode { New, Append, AppendRepeatedly }
 设置文件时的模式。 更多...
 
enum  MovieEventSyncMode { FrameTime, PlayBackTime }
 是视频事件(Cue Point、字幕)的同步模式。 更多...
 
enum  AudioTrack { Off, Auto }
 设置音频音轨时的模式。 更多...
 
enum  TimerType : int {
  None = 0, System = 1, Audio = 2, User = 3,
  Manual = 4
}
 是计时器类型。 更多...
 

Public 成员函数

delegate void CuePointCallback (ref EventPoint eventPoint)
 是Cue Point回调委托类型。 更多...
 
delegate void StatusChangeCallback (Status status)
 Player状态更改时回调的委托类型。 更多...
 
delegate void SubtitleChangeCallback (IntPtr subtitleBuffer)
 字幕信息更新回调函数的委托类型 更多...
 
delegate UnityEngine.Shader ShaderDispatchCallback (MovieInfo movieInfo, bool additiveMode)
 是Shader选择委托类型。 更多...
 
override void Dispose ()
 丢弃Player对象 更多...
 
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)
 设置视频事件(Cue Point、字幕)的同步模式。 更多...
 
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)
 调整视频播放音量。(Extra音频) 更多...
 
float GetExtraAudioVolume ()
 获取视频播放的音量。(Extra音轨) 更多...
 
void SetBusSendLevel (string bus_name, float level)
 调整主音频音轨的总线发送Level。 更多...
 
void SetSubAudioBusSendLevel (string bus_name, float volume)
 调整副音频音轨的总线发送Level。 更多...
 
void SetExtraAudioBusSendLevel (string bus_name, float volume)
 调整添加音频音轨的总线发送Level。 更多...
 
void SetSubtitleChannel (int channel)
 设置字幕声道。 更多...
 
void SetShaderDispatchCallback (ShaderDispatchCallback shaderDispatchCallback)
 设置Shader选择委托。 更多...
 
long GetTime ()
 获取播放时间。 更多...
 
int GetDisplayedFrameNo ()
 获取当前显示的帧编号。 更多...
 
bool HasRenderedNewFrame ()
 确认是否渲染了新的帧。 更多...
 
void SetAsrRackId (int asrRackId)
 设置ASR Rack。 更多...
 
void SetTimeStretchQuality (float quality)
 调整音频Time Stretch的处理质量。 更多...
 
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)
 根据应用程序状态的变化设置其暂停状态。 更多...
 

Public 属性

CuePointCallback cuePointCallback
 Cue Point回调委托。 更多...
 
StatusChangeCallback statusChangeCallback
 Player状态更改时回调的委托。 更多...
 

属性

bool additiveMode [get, set]
 将混合模式设置为加算合成模式。 更多...
 
int maxFrameDrop [get, set]
 设置最大丢帧数。 更多...
 
bool applyTargetAlpha [get, set]
 设置是否适用对象的透明度。 更多...
 
bool uiRenderMode [get, set]
 指定是否应用UI组件的Shader设置。 更多...
 
bool isFrameAvailable [get]
 是否持有有效的帧 更多...
 
MovieInfo movieInfo [get]
 获取正在播放的视频信息。 更多...
 
FrameInfo frameInfo [get]
 获取正在播放的视频的帧信息。 更多...
 
Status status [get]
 获取Player的状态。 更多...
 
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句柄(Extra音轨) 更多...
 
CriManaMoviePlayerHolder playerHolder [get, set]
 容纳Player的Object。 更多...
 

事件

SubtitleChangeCallback OnSubtitleChanged
 字幕信息更新的回调函数 更多...
 

详细描述

是用于控制视频播放的本机Player的Wrapper类。

说明:

通常情况下,从 CriManaMovieControllerCriManaMovieControllerForUI 组件取出后使用。 执行比播放停止、暂停更复杂的播放控制时,请使用本类。
想要在不使用组件的情况下,直接进行视频播放控制时,也可以直接创建本对象后进行使用。
注意:
如果直接从应用程序创建了本类的对象,请在播放结束后,务必用 Player::Dispose 函数进行丢弃。

成员枚举类型说明

enum Status
strong

显示Player状态的值。

参见
Player::status
枚举值
Stop 

已停止

Dechead 

头文件解析中

WaitPrep 

缓冲开始停止中

Prep 

播放准备中

Ready 

播放准备完成

Playing 

正在播放

PlayEnd 

结束播放

Error 

错误

StopProcessing 

停止处理中

ReadyForRendering 

渲染准备完成

enum SetMode
strong

设置文件时的模式。

参见
Player::SetFile, Player::SetContentId, Player::SetFileRange
枚举值
New 

指定下次播放时使用的视频

Append 

添加至连接播放Cue中

AppendRepeatedly 

反覆进行添加,直到连接播放Cue中注册以下视频为止

enum MovieEventSyncMode
strong

是视频事件(Cue Point、字幕)的同步模式。

参见
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)

是Cue Point回调委托类型。

参数
eventPoint事件点信息
说明:
是Cue Point回调委托类型。
注意:
在Cue Point回调内,不得调用用于控制视频播放的函数。
参见
Player::cuePointCallback
delegate void StatusChangeCallback ( Status  status)

Player状态更改时回调的委托类型。

参数
status更改后的Player状态
说明:
Player状态更改时回调的委托类型。
参见
Player::statusChangeCallback
delegate void SubtitleChangeCallback ( IntPtr  subtitleBuffer)

字幕信息更新回调函数的委托类型

参数
subtitleBuffer指向字幕字符串的指针。
说明:
这是字幕信息更新回调函数的委托类型。
参见
Player::OnSubtitleChanged
delegate UnityEngine.Shader ShaderDispatchCallback ( MovieInfo  movieInfo,
bool  additiveMode 
)

是Shader选择委托类型。

参数
movieInfo视频信息
additiveMode是否加算合成
说明:
是Shader选择委托类型。
参见
Player::SetShaderDispatchCallback
override void Dispose ( )
inline

丢弃Player对象

说明:
丢弃Player对象。
如果单独创建了自己的 CriMana::Player 对象,则请务必调用 Dispose 函数。 一旦执行了本函数,创建Player时取得的资源将全部被释放。
void CreateRendererResource ( int  width,
int  height,
bool  alpha 
)
inline

创建视频渲染所需的资源。

参数
width视频宽度
height视频高度
alpha是否是Alpha视频
说明:
创建视频渲染所需的资源。
通常情况下,创建视频渲染所需的资源是在Player内部自动执行,但可以通过在调用 Player::PreparePlayer::Start 前调用本函数,事先创建资源。
但是,如果因用该函数事先创建的资源的宽度或高度不足,
而导致无法用于实际要播放的视频渲染时,资源将会被丢弃后重新创建。
参见
Player::DisposeRendererResource
void DisposeRendererResource ( )
inline

丢弃视频渲染所需的资源。

说明:
丢弃视频渲染所需的资源。
资源的丢弃会在 Player::Dispose 时执行, 但可以用本函数来明确地予以执行。
参见
Player::CreateRendererResource
void Prepare ( )
inline

执行播放准备处理。

说明:
该函数不会开始视频播放,而仅是在头文件解析和播放准备(缓冲)后进行待机。

请在指定了播放对象的视频后,调用本函数。 播放准备完成后,Player的状态更改为 Player.Status.Ready 状态。

本函数请仅在 Player.Status.Stop 状态或 Player.Status.PlayEnd 状态下进行调用。
参见
Player::Status
void PrepareForRendering ( )
inline

执行播放准备处理。

说明:
该函数不会开始视频播放,而仅是在头文件解析和播放准备(缓冲和第1帧的准备)后进行待机。
想凑齐视频播放开始的开头时,使用本函数。

请在指定了播放对象的视频后,调用本函数。 播放准备完成后,Player的状态更改为 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: 解除暂停)
说明:
打开和关闭暂停。
如果指定true作为参数,则暂停播放;如果指定false,则恢复播放。
调用 Player::Stop 函数会清除暂停状态。
参见
Player::IsPaused
bool IsPaused ( )
inline

获取视频播放的暂停状态。

返回
暂停状态
说明:
获取暂停的ON/OFF。
参见
Player::Pause
bool SetFile ( CriFsBinder  binder,
string  moviePath,
SetMode  setMode = SetMode.New 
)
inline

设置串流播放用的文件路径。

参数
binder已经Bind了CPK文件的Binder
moviePathCPK文件内的内容路径
setMode视频添加模式
返回
是否设置成功
说明:
设置用于串流播放的文件路径。
通过在第一个参数binder中指定绑定CPK文件的binder句柄,可从CPK文件中执行视频播放。
通过将binder指定为null可直接从文件而不是从CPK中进行流播放。
如果 Player::SetMode::Append 作为第三个参数setMode被给出,就会进行连接播放。 此时,该函数可能返回错误。
可以连接播放的视频文件必须满足以下条件。
  • 视频分辨率、帧率和编码格式都相同
  • 有无Alpha信息的情况相同
  • 音频轨道组成(音轨编号和各声道数)和编码格式都是相同的
不指定Binder时(指定null时):
- 等效于设置 moviePath 属性时的情况。
  • 如果指定了相对路径,将会从 StreamingAssets 文件夹以相对路径来加载文件。
  • 如果指定了绝对路径,将会以所指定的路径来加载文件。
指定为Binder时:
设置Binder后,如果设置了 moviePath 属性, 则将会从Binder上Bind的CPK文件播放视频。
注意:
作为 moviePath,也可以指定 URL。 例如,通过指定 "http://hoge-server/fuga-movie.usm" 等字符串, 可以通过串流方式来播放 HTTP Server上的视频文件。但不推荐使用该功能。 此外,通信协议仅支持 HTTP。不支持HTTPS。
参见
Player::SetContentId, Player::SetFileRange, Player::moviePath
bool SetData ( IntPtr  data,
System.Int64  dataSize,
SetMode  setMode = SetMode.New 
)
inline

设置内存播放用的数据。

参数
data内存中的视频数据
dataSize数据大小
setMode视频添加模式
返回
是否设置成功
说明:
配置内存播放的数据设置。
第一个和第二个参数指定数据的地址和大小。 如果 Player::SetMode::Append 作为第三参数 setMode 被赋予,将进行连接播放。 在这种情况下,该函数可能返回 false 。
可以连接播放的视频文件的条件与 Player::SetFile 函数的条件相同。
注意:
为防止传递至SetData的缓冲区地址被收入垃圾回收器中, 请事先在应用程序侧传递固定的地址。
此外,要对内存进行固定解除时,请在丢弃播放结束状态、播放停止状态或Player对象后执行。
参见
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)

参数
binder已经Bind了CPK文件的Binder
contentIdCPK文件内的内容ID
setMode视频添加模式
返回
是否设置成功
说明:
设置用于串流播放的内容ID。
通过指定binder和内容ID作为参数,CPK文件中的任何视频数据都可以作为数据读取来源。 如果第三参数setMode被设为Append,将会进行连接播放。此时,该函数可能返回错误。
可以连接播放的视频文件必须满足以下条件。
  • 视频分辨率、帧率和编码格式都相同
  • 有无Alpha信息的情况相同
  • 音频轨道组成(音轨编号和各声道数)和编码格式都是相同的
参见
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。
可以连接播放的视频文件必须满足以下条件。
  • 视频分辨率、帧率和编码格式都相同
  • 有无Alpha信息的情况相同
  • 音轨组成(音轨编号和各声道数)和编码格式都是相同的
参见
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的音视频长度存在差异的情况下重复进行循环播放或连接播放, 随着差异的累积,可能引致音视频发生不同步,并使播放停止。
启用本函数的设置时,运行时库內部将自动根据音频时间进行调整。
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

设置视频事件(Cue Point、字幕)的同步模式。

参数
mode视频事件同步模式
说明:
设置视频事件(Cue Point、字幕)的同步模式。
预设状态下,将会同步至帧时间来触发事件。
如果想和视频播放时间同步时,请指定MovieEventSyncMode::PlayBackTime。
注意:
请在播放开始前调用本函数。
void SetSpeed ( float  speed)
inline

调整视频播放速度。

参数
speed播放速度
说明:
指定视频的播放速度。
播放速度应设置为 0.0f 到 3.0f 范围内的实数值。
如果设置为1.0f,数据将以原始速度播放。
如果设置为2.0f,则将以两倍于影片数据的帧速率播放影片。
播放速度的预设值为1.0f。

如果 Mana 播放器开启了Advanced Audio Mode,则调用此函数可以 让您在播放视频声音时使用Time Stretch功能,从而在不改变音高的情况下以2倍速播放。 音频的Time Stretch播放支持 0.5 倍至 2.0 倍的播放速度。

注意:
针对正在播放的视频更改播放速度只支持没有音频的视频播放。
如果更改附带音频的视频的播放速度,则将无法正常动作。如果是带音频的视频,请暂停播放, 在更改了播放速度后,从想要的帧编号开始搜索播放。

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

指定最大图片数据大小

参数
maxDataSize最大图片数据大小
说明:
设置最大图片数据大小。
在普通播放中,不必使用此函数。

连续播放Sofdec.Prime编码以外的视频时,请在开始播放之前使用此功能设置最大图片数据大小。
要设置的数据大小是所有USM文件中,Wizz工具里显示的Maximum chunk size值的最大值;
或用于无缝连接播放的所有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 Player内部保有不小于指定值的输入缓冲。
在单纯播放中不需要使用此函数。 无缝连续播放比特率差距很大的视频时则需要使用此功能。
如果最小缓冲指定为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

调整视频播放音量。(Extra音频)

参数
volume音量
说明:
指定视频的添加音频音轨的输出音量。
音量值是在0.0f~1.0f的范围内指定实数值。
音量值是针对音频数据的振幅的倍率(单位不是分贝)。
例如,指定为1.0f时,将按照原有的音量输出原音。
指定为0.0f时,音频将被静音(更改为无音状态)。
音量的预设值是1.0f。
备注:
指定为0.0f ~ 1.0f范围外时,分别将被裁剪为各自的最小和最大值。
float GetExtraAudioVolume ( )
inline

获取视频播放的音量。(Extra音轨)

说明:
获取视频Extra音轨的输出音量。
音量范围为0.0f以上、1.0f以下。
void SetBusSendLevel ( string  bus_name,
float  level 
)
inline

调整主音频音轨的总线发送Level。

参数
bus_name总线名
level总线发送Level
说明:
指定视频的主音频音轨的总线发送Level(振幅Level)和发送目标的总线名。
总线发送Level值是在0.0f~1.0f的范围内指定实数值。
总线发送Level值是针对音频数据的振幅的倍率(单位不是分贝)。
例如,指定为1.0f时,将按照原有的音量将原音输出至总线。
指定为0.0f时,总线将会输出静音。
void SetSubAudioBusSendLevel ( string  bus_name,
float  volume 
)
inline

调整副音频音轨的总线发送Level。

参数
bus_name总线名
volume总线发送Level
说明:
指定视频的副音频音轨的总线发送Level(振幅Level)和发送目标的总线名。
本函数的动作规格与 SetBusSendLevel 相同。
void SetExtraAudioBusSendLevel ( string  bus_name,
float  volume 
)
inline

调整添加音频音轨的总线发送Level。

参数
bus_name总线名
volume总线发送Level
说明:
指定视频的添加音频音轨的总线发送Level(振幅Level)和发送目标的总线名。
本函数的动作规格与 SetBusSendLevel 相同。
void SetSubtitleChannel ( int  channel)
inline

设置字幕声道。

参数
channel字幕声道编号
说明:
设置要获取的字幕声道。预设状态下不会获取字幕。
如果想要设置为预设的设置(不获取字幕),请将 -1 指定为声道。
视频播放过程中也可以切换字幕声道。但是,切换实际的声道是从 设置后的下一组字幕开始。
参见
Player::subtitleBuffer, Player::subtitleBuffer
void SetShaderDispatchCallback ( ShaderDispatchCallback  shaderDispatchCallback)
inline

设置Shader选择委托。

参数
shaderDispatchCallbackShader选择委托
说明:
设置执行用于决定用户定义Shader的委托。
注意:
需要在 Player::Prepare 函数和 Player::Start 函数前设置。
参见
Player::ShaderDispatchCallback
long GetTime ( )
inline

获取播放时间。

返回
播放时间 (单位:微秒)
说明:
获取当前正在播放的视频的播放时间。
播放开始前和播放停止后,将会返回 0。
单位是微秒。
int GetDisplayedFrameNo ( )
inline

获取当前显示的帧编号。

返回
帧编号
说明:
获取当前显示的帧编号。
显示开始前和播放停止后,将会返回 -1。
在某些平台和编解码器下,可能会返回比可以获取的帧信息 更前的编号。
bool HasRenderedNewFrame ( )
inline

确认是否渲染了新的帧。

返回
显示是否渲染了帧的标记
说明:
调用当前播放控制后,返回画面上是否渲染了新帧。
void SetAsrRackId ( int  asrRackId)
inline

设置ASR Rack。

参数
asrRackIdASR Rack ID
说明:
指定要播放的音频的输出ASR Rack ID。
输出ASR Rack ID的设置会反映于主音频音轨和副音频音轨双方。
注意:
正在播放时无法更改。如果在播放过程中调用了本API,则将会从下一个视频播放开始适用更改后的设置。
参见
CriAtomExAsrRack::rackId
void SetTimeStretchQuality ( float  quality)
inline

调整音频Time Stretch的处理质量。

参数
quality质量
说明:
指定执行音频Time Stretch时的处理质量。
值的设置范围为 0 到 10。
数字越高,音频质量越好,但 CPU 负载也越高。
如果不指定质量,则使用预设值2。
参见
Player::SetSpeed
void UpdateWithUserTime ( ulong  timeCount,
ulong  timeUnit 
)
inline

指定用户时间来更新状态。

说明:
更新Player的状态。
如果在 CriWare.CriMana::Player::SetMasterTimerType 启用了用户计时器,请定期调用 本函数。
注意:
如果本函数的调用出现延迟,视频播放可能会变得不顺畅。
快进或慢进用户计时器会造成Master计时器的精度下降, 导致很难用正确的时间来获取帧,通常情况下,请以等倍速播放 来使用本函数。
参见
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 启用了手动计时器,则需要定期调用本函数。 调用。
Player状态在PLAYING(正在播放)时,时间会提前。
暂停状态下即使调用本函数,时间也不会提前,播放开始和停止时,时间将会被重置为0。
参见
Player::SetMasterTimerType, Player::SetManualTimerUnit
void Update ( )
inline

更新状态。

说明:
更新Player的状态。
应用程序需要定期执行本函数。
注意:
如果本函数的调用出现延迟,视频播放可能会变得不顺畅。
void SyncMasterTimer ( )
inline

与主计时器同步时间。

说明:
将播放器句柄的状态与主计时器同步。
备注:
本函数因为在 在 CriWare.CriMana::Player::Update 中同样也会执行,所以不需要用户定期调用。
可以在需要进行同步播放等对时刻严密度较高的播放处理时使用。
bool UpdateMaterial ( UnityEngine.Material  material)
inline

为了在素材上显示当前的帧而进行设置。

参数
material设置对象的素材
返回
是否完成了设置
说明:
在素材上设置用于显示当前帧的Shader和各种参数。
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

Cue Point回调委托。

说明:
Cue Point回调委托。
注意:
需要在 Player::Prepare 函数和 Player::Start 函数前设置。
参见
Player::CuePointCallback
StatusChangeCallback statusChangeCallback

Player状态更改时回调的委托。

说明:
Player状态更改时回调的委托。
参见
Player::StatusChangeCallback

属性说明

bool additiveMode
getset

将混合模式设置为加算合成模式。

说明:
是传递给播放时的Shader选择回调的参数。
注意:
需要在 Player::Prepare 函数和 Player::Start 函数前设置。
参见
Player::ShaderDispatchCallback
int maxFrameDrop
getset

设置最大丢帧数。

说明:
渲染帧的更新赶不上播放时,设置一次更新时要降低的 最大帧数。
应用程序的帧率降低时,或者视频播放速度超过了帧率时 可以按照自己意图来进行播放。
bool applyTargetAlpha
getset

设置是否适用对象的透明度。

说明:
根据所添加的对象的透明度,设置视频是否也透明。
注意:
需要在 Player::Prepare 函数和 Player::Start 函数前设置。
bool uiRenderMode
getset

指定是否应用UI组件的Shader设置。

说明:
设置是否将UI组件的渲染设置应用于渲染视频的Shader。
预设值为false。
注意:
需要在 Player::Prepare 函数和 Player::Start 函数前设置。
bool isFrameAvailable
get

是否持有有效的帧

说明:
返回是否持有有效的帧。
备注:
自行进行渲染时,请用本标记对渲染进行切换控制。
MovieInfo movieInfo
get

获取正在播放的视频信息。

参数
movieInfo视频信息
说明:
开始播放的视频的头文件解析结果信息。
可以参照视频的分辨率、帧率等信息。
注意:
仅在Player的状态为 Player.Status.WaitPrep~Player.Status.Playing 状态之间时,可以获取信息。
其他状态将会返回 null。
参见
Player::Status
FrameInfo frameInfo
get

获取正在播放的视频的帧信息。

参数
frameInfo帧信息
说明:
可以获取当前正在渲染的帧信息。
备注:
仅可以获取播放状态的信息。其他状态下,会返回 null。
Status status
get

获取Player的状态。

返回
状态
说明:
获取Player的状态。
Status nativeStatus
get

获取内部句柄的状态。

返回
状态
说明:
获取插件内部使用的Mana Player句柄的状态。
此功能的设计目的是用于详细的调试和状态管理。
需要在应用程序中查看视频的播放状态时,请使用 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 启用高级音频模式时获取有效的句柄。
参见
CriManaMovieMaterial::advancedAudio
CriAtomExPlayer subAtomExPlayer
get

获取CriAtomExPlayer句柄(副音轨)

说明:
获取用于播放视频中包含的音频数据的 CriAtomExPlayer 句柄。
可以通过本属性获取用于副音轨的 CriAtomExPlayer。
仅在使用 CriManaMovieMaterial.advancedAudio 启用 Advanced Audio 模式时
才能获取有效句柄。
参见
CriManaMovieMaterial.advancedAudio, CriAtomExPlayer, SetSubAudioTrack
CriAtomExPlayer extraAtomExPlayer
get

获取CriAtomExPlayer句柄(Extra音轨)

说明:
获取用于播放视频中包含的音频数据的 CriAtomExPlayer 句柄。
可以通过本属性获取用于Extra音轨的CriAtomExPlayer。
仅在使用 CriManaMovieMaterial.advancedAudio 启用 Advanced Audio 模式时
才能获取有效句柄。
参见
CriManaMovieMaterial.advancedAudio, CriAtomExPlayer, SetExtraAudioTrack
CriManaMoviePlayerHolder playerHolder
getset

容纳Player的Object。

说明:
一个MonoBehaviour对象,该对象持有有效的 CriWare.CriMana::Player,直到销毁为止。 它用于插件内部执行协程,以删除GPU和渲染线程所保有的非托管资源。

事件说明

SubtitleChangeCallback OnSubtitleChanged

字幕信息更新的回调函数

说明:
这是字幕信息更新回调事件。
注意:
从此事件获取的字符串指针可能不包含终止字符。
请确保使用除指定指针以外同时还可以指定缓冲区大小的API来执行转换。
参见
Player::SubtitleChangeCallback, subtitleSize

该类的文档由以下文件生成: