player
Class Summary
OHOS::Media::PlayerCallback
提供媒体播放过程中的事件和异常通知监听能力
- 构造: 无
-
成员函数:
接口名称 功能简述 OnPlaybackComplete 播放完成时回调 OnError 播放错误时回调 OnInfo 接收播放信息时回调 OnRewindToComplete 进度跳转完成时回调 -
使用包含头文件:
#include "player.h" - 声明头文件:
middleware/services/media/foundation/player/interfaces/kits/player.h - 公有运算符: 无
- 继承关系: 无
- 嵌套类型:
PlayerInfoType、PlayerErrorType、PlayerErrorCode - 模板形参: 无
OHOS::Media::Player
提供在线电影、本地电影和流媒体的播放控制能力
- 构造: 无
-
成员函数:
接口名称 功能简述 SetSource 设置播放源 Prepare 准备播放环境并缓冲媒体数据 Play 开始或恢复播放 IsPlaying 检查是否正在播放 Pause 暂停播放 Stop 停止播放 Rewind 改变播放位置 SetVolume 设置播放音量 SetVideoSurface 设置视频播放Surface EnableSingleLooping 设置是否循环播放 IsSingleLooping 检查是否循环播放 GetPlayerState 获取播放器状态 GetCurrentTime 获取当前播放位置 GetDuration 获取媒体总时长 SetPlaybackSpeed 设置播放速度 GetPlaybackSpeed 获取播放速度 SetAudioStreamType 设置音频流类型 GetAudioStreamType 获取音频流类型 Reset 恢复播放器到初始状态 Release 释放播放器资源 SetPlayerCallback 注册播放事件监听器 SetParameter 通过Format设置扩展参数 GetParameter 通过Format获取扩展参数 GetTotalTracks 获取轨道总数 SetAudioSessionId 设置音频会话ID GetAudioSessionId 获取音频会话ID SetOutputDevice 设置输出设备 GetRoutedDeviceId 获取当前路由设备ID DumpInfo 获取播放器调试信息 -
使用包含头文件:
#include "player.h" - 声明头文件:
middleware/services/media/foundation/player/interfaces/kits/player.h - 公有运算符: 无
- 继承关系: 无
- 嵌套类型: 无
- 模板形参: 无
Functions
OHOS::Media::PlayerCallback
OnPlaybackComplete
virtual void OnPlaybackComplete() = 0
功能说明
- 播放完成时由播放器回调,通知调用方媒体已播放到末尾
- 纯虚函数,由调用方实现具体处理逻辑
- 回调在播放器内部线程触发,调用方需注意线程安全
OnError
virtual void OnError(int32_t errorType, int32_t errorCode) = 0
功能说明
- 播放过程中发生错误时由播放器回调,通知调用方错误类型与错误码
- 纯虚函数,由调用方实现具体错误处理逻辑
- 回调在播放器内部线程触发,调用方需注意线程安全
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| errorType | int32_t | 错误类型,参考PlayerErrorType | PLAYER_ERROR_UNKNOWN(0) |
| errorCode | int32_t | 错误码,参考PlayerErrorCode | PLAYER_ERROR_CODE_VID_PLAY_FAIL(0x0) ~ PLAYER_ERROR_CODE_BUTT(0x7) |
OnInfo
virtual void OnInfo(int32_t type, int32_t extra) = 0
功能说明
- 播放过程中接收到信息时由播放器回调,通知调用方信息类型与信息码
- 纯虚函数,由调用方实现具体信息处理逻辑
- 回调在播放器内部线程触发,调用方需注意线程安全
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| type | int32_t | 信息类型,参考PlayerInfoType | PLAYER_INFO_PLAY_START(0) ~ PLAYER_INFO_BUTT(6) |
| extra | int32_t | 信息码,具体含义由信息类型决定 | - |
OnRewindToComplete
virtual void OnRewindToComplete() = 0
功能说明
- 进度跳转完成时由播放器回调,通知调用方跳转操作已执行完毕
- 纯虚函数,由调用方实现具体处理逻辑
- 回调在播放器内部线程触发,调用方需注意线程安全
OHOS::Media::Player
SetSource
int32_t SetSource(const Source &source)
功能说明
- 设置播放器的播放源,支持本地文件URI和媒体流
- 需在播放器处于Idle状态时调用,否则返回失败
- 调用后播放器内部完成初始化,可继续调用Prepare进入准备状态
前置条件
- 播放器处于Idle状态(PLAYER_IDLE)
- 播放器尚未调用Release释放资源
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| source | const Source & | 入参只读引用,播放源对象,支持URI/FD/Stream类型 | Source对象已正确构造 |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器状态非Idle;播放器已释放;内部初始化失败 |
Prepare
int32_t Prepare()
功能说明
- 准备播放环境并缓冲媒体数据
- 调用后播放器进入Prepared状态,可开始播放
- 内部完成解复用器初始化、解码器创建及数据缓冲
前置条件
- 调用时序约束:必须在SetSource()成功设置播放源之后调用
- 播放器处于Initialized状态
返回值
- 返回类型:
int32_t
返回准备结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 准备成功 |
| -1 | 准备失败;播放器已释放;未设置播放源 |
Play
int32_t Play()
功能说明
- 开始或恢复播放
- 若播放器处于Prepared状态,调用后开始播放;若处于Paused状态,调用后恢复播放
- 若媒体以异常速度播放,调用后恢复正常播放速度
前置条件
- 调用时序约束:必须在Prepare()成功返回后调用
- 播放器处于Prepared或Paused状态
返回值
- 返回类型:
int32_t
返回播放操作结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 播放开始或恢复成功 |
| -1 | 播放失败;播放器已释放;状态不合法 |
IsPlaying
bool IsPlaying()
功能说明
- 检查播放器是否正在播放
- 返回当前播放状态标志,不改变播放器状态
- 可在任何时刻调用查询播放状态
返回值
- 返回类型:
bool
返回播放状态标志
| 返回值 | 触发场景 |
|---|---|
| true | 播放器正在播放 |
| false | 播放器未在播放;播放器已释放 |
Pause
int32_t Pause()
功能说明
- 暂停播放,可在播放过程中调用
- 暂停后播放位置保持不变,可调用Play恢复播放
- 播放器内部保留已缓冲的媒体数据
前置条件
- 播放器处于Started状态
返回值
- 返回类型:
int32_t
返回暂停操作结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 暂停成功 |
| -1 | 暂停失败;播放器已释放;状态不合法 |
Stop
int32_t Stop()
功能说明
- 停止播放,可在播放或暂停状态下调用
- 停止后播放位置归零,需重新调用Prepare和Play才能再次播放
- 播放器内部释放已缓冲的媒体数据
前置条件
- 播放器处于Prepared/Started/Paused状态
返回值
- 返回类型:
int32_t
返回停止操作结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 停止成功 |
| -1 | 停止失败;播放器已释放;状态不合法 |
Rewind
int32_t Rewind(int64_t mSeconds, int32_t mode)
功能说明
- 改变播放位置,可在播放或暂停状态下调用
- 通过指定目标时间和跳转模式定位到相应帧位置
- 跳转完成后通过OnRewindToComplete回调通知调用方
前置条件
- 播放器处于Prepared/Started/Paused状态
- 播放器已成功调用Prepare
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| mSeconds | int64_t | 目标播放位置,单位毫秒 | 0 ~ 媒体总时长 |
| mode | int32_t | 跳转模式,参考PlayerSeekMode | PLAYER_SEEK_PREVIOUS_SYNC(0) ~ PLAYER_SEEK_CLOSEST(3) |
返回值
- 返回类型:
int32_t
返回跳转操作结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 跳转请求成功 |
| -1 | 跳转失败;播放器已释放;状态不合法 |
SetVolume
int32_t SetVolume(float leftVolume, float rightVolume)
功能说明
- 设置播放器左右声道音量,可在播放或暂停状态下调用
- 0表示静音,100表示原始音量,支持最大300的超大音量
- 左右声道独立设置,适用于立体声场景
前置条件
- 播放器已成功调用Prepare进入Prepared及以上状态
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| leftVolume | float | 左声道目标音量 | 0 ~ 300 |
| rightVolume | float | 右声道目标音量 | 0 ~ 300 |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器已释放 |
SetVideoSurface
int32_t SetVideoSurface(Surface *surface)
功能说明
- 设置视频播放的Surface,用于视频画面渲染
- 需在Prepare之前调用,播放过程中设置无效
- 传入的Surface由调用方管理生命周期
前置条件
- 已启用UIKIT(ENABLE_UIKIT宏已定义)
- 播放器处于Initialized状态,Prepare之前
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| surface | Surface * | 入参指针,视频渲染Surface对象 | 不可为nullptr |
Kconfig 配置
| 配置项 | 说明 | 默认值 |
|---|---|---|
| ENABLE_UIKIT | 接口级宏,启用UIKIT时该接口可用 | n |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器已释放;surface为nullptr |
EnableSingleLooping
int32_t EnableSingleLooping(bool loop)
功能说明
- 设置是否启用单文件循环播放
- 启用后媒体播放到末尾时自动从头开始播放
- 可在播放或暂停状态下调用
前置条件
- 播放器已成功调用Prepare
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| loop | bool | 是否启用循环播放 | true: 启用; false: 禁用 |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器已释放 |
IsSingleLooping
bool IsSingleLooping()
功能说明
- 检查播放器是否处于循环播放模式
- 返回当前循环播放标志,不改变播放器状态
- 可在任何时刻调用查询循环状态
返回值
- 返回类型:
bool
返回循环播放标志
| 返回值 | 触发场景 |
|---|---|
| true | 播放器已启用循环播放 |
| false | 播放器未启用循环播放;播放器已释放 |
GetPlayerState
int32_t GetPlayerState(int32_t &state) const
功能说明
- 获取播放器当前状态,通过出参返回状态值
- 可在任何时刻调用查询播放器状态
- 状态值与PlayerStates枚举定义对应
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| state | int32_t | 出参引用,由被调用方写入当前播放器状态,参考PlayerStates |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
GetCurrentTime
int32_t GetCurrentTime(int64_t &time) const
功能说明
- 获取当前播放位置,精确到毫秒
- 可在播放或暂停状态下调用
- 返回的是当前已渲染的媒体时间位置
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| time | int64_t | 出参引用,由被调用方写入当前播放位置(毫秒) |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
GetDuration
int32_t GetDuration(int64_t &durationMs) const
功能说明
- 获取媒体文件的总时长,单位毫秒
- 需在Prepare成功后调用,否则可能获取不到正确时长
- 对于本地文件,时长在解复用后即可获取
前置条件
- 播放器已成功调用Prepare
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| durationMs | int64_t | 出参引用,由被调用方写入媒体总时长(毫秒) |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
SetPlaybackSpeed
int32_t SetPlaybackSpeed(float speed)
功能说明
- 设置播放速度,支持倍速和慢速播放
- 速度值为1.0表示正常播放,负值表示倒放
- 可在播放或暂停状态下调用
前置条件
- 播放器已成功调用Prepare
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| speed | float | 播放速度 | -128 / -64 / -32 / -16 / -8 / -4 / -2 / 1 / 2 / 4 / 8 / 16 / 32 / 64 / 128 |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器已释放 |
GetPlaybackSpeed
int32_t GetPlaybackSpeed(float &speed)
功能说明
- 获取当前播放速度
- 可在任何时刻调用查询当前速度设置
- 返回值为最近一次SetPlaybackSpeed设置的值
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| speed | float | 出参引用,由被调用方写入当前播放速度 |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
SetAudioStreamType
int32_t SetAudioStreamType(int32_t type)
功能说明
- 设置音频流类型,用于区分不同音频场景
- 需在Prepare之前调用以生效
- 音频流类型影响音频焦点管理策略
前置条件
- 播放器尚未调用Prepare
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| type | int32_t | 音频流类型 | 音频流类型枚举值 |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器已释放 |
GetAudioStreamType
int32_t GetAudioStreamType(int32_t &type)
功能说明
- 获取当前音频流类型
- 默认音频流类型为AUDIO_STREAM_MUSIC
- 可在任何时刻调用查询当前音频流类型设置
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| type | int32_t | 出参引用,由被调用方写入当前音频流类型 |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
Reset
int32_t Reset()
功能说明
- 恢复播放器到初始状态(Idle状态)
- 调用后播放器释放当前播放源及相关资源,可重新调用SetSource
- 可在任何状态下调用
返回值
- 返回类型:
int32_t
返回重置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 重置成功 |
| -1 | 重置失败;播放器已释放 |
Release
int32_t Release()
功能说明
- 释放播放器资源,调用后播放器不可再使用
- 内部释放解码器、解复用器、缓冲区等所有资源
- 建议在播放器生命周期结束时调用,避免资源泄漏
返回值
- 返回类型:
int32_t
返回释放结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 释放成功 |
| -1 | 释放失败;播放器已释放 |
SetPlayerCallback
void SetPlayerCallback(const std::shared_ptr<PlayerCallback> &cb)
功能说明
- 注册播放事件监听器,接收播放器的事件和异常通知
- 入参为shared_ptr,调用方与播放器共享PlayerCallback对象所有权
- 需在Prepare之前调用以确保回调正常注册
前置条件
- 播放器尚未调用Prepare
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| cb | const std::shared_ptr |
入参只读引用,共享所有权的回调对象 | 不可为nullptr |
SetParameter
int32_t SetParameter(const Format ¶ms)
功能说明
- 通过Format设置扩展参数,为播放器提供扩展配置接口
- 当前版本不支持该接口
- 参数以键值对形式通过Format对象传递
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| params | const Format & | 入参只读引用,扩展参数信息 | Format对象已正确构造 |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器已释放;当前版本不支持 |
GetParameter
int32_t GetParameter(Format ¶ms)
功能说明
- 通过Format获取扩展参数,读取播放器的扩展配置信息
- 参数以键值对形式通过Format对象返回
- 可在播放或暂停状态下调用
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| params | Format | 出参引用,由被调用方写入扩展参数信息 |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
GetTotalTracks
int32_t GetTotalTracks(int32_t &totalTracks)
功能说明
- 获取媒体文件的轨道总数
- 需在Prepare成功后调用,否则可能获取不到正确的轨道信息
- 轨道数包括音频轨道、视频轨道等
前置条件
- 播放器已成功调用Prepare
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| totalTracks | int32_t | 出参引用,由被调用方写入轨道总数 |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
SetAudioSessionId
int32_t SetAudioSessionId(uint32_t sessionId)
功能说明
- 设置音频会话ID,用于音频焦点管理
- 同一会话ID的音频流共享焦点策略
- 需在Prepare之前调用以生效
前置条件
- 播放器尚未调用Prepare
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| sessionId | uint32_t | 音频会话ID | 有效会话ID,默认INVALID_SESSION_ID为0 |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器已释放 |
GetAudioSessionId
int32_t GetAudioSessionId(uint32_t &sessionId)
功能说明
- 获取当前音频会话ID
- 默认会话ID为0(INVALID_SESSION_ID)
- 可在任何时刻调用查询当前会话ID
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| sessionId | uint32_t | 出参引用,由被调用方写入当前音频会话ID |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
SetOutputDevice
int32_t SetOutputDevice(int32_t deviceId)
功能说明
- 设置音频输出设备
- 可在播放过程中切换输出设备
- 设备ID与音频设备管理模块定义对应
前置条件
- 播放器已成功调用Prepare
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| deviceId | int32_t | 输出设备ID | 有效音频设备ID |
返回值
- 返回类型:
int32_t
返回设置结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 设置成功 |
| -1 | 设置失败;播放器已释放 |
GetRoutedDeviceId
int32_t GetRoutedDeviceId(int32_t &deviceId)
功能说明
- 获取当前路由的输出设备ID
- 可在任何时刻调用查询当前输出设备
- 返回的是实际正在使用的设备ID
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| deviceId | int32_t | 出参引用,由被调用方写入当前输出设备ID |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放 |
DumpInfo
int32_t DumpInfo(PlayerDebugInfo *playerInfo)
功能说明
- 获取播放器调试信息,用于问题诊断和状态分析
- 调试信息包含文件信息、视频流信息、音频流信息和播放控制信息
- 可在任何时刻调用获取当前播放器内部状态快照
前置条件
- playerInfo指针不为nullptr且指向已分配内存
入参
| 名称 | 参数类型 | 详细说明 | 约束取值范围 |
|---|---|---|---|
| playerInfo | PlayerDebugInfo * | 入参指针,调试信息输出缓冲区 | 不可为nullptr,指向的内存已分配 |
出参
| 名称 | 数据类型 | 输出说明 |
|---|---|---|
| playerInfo | PlayerDebugInfo * | 出参指针,由被调用方写入调试信息 |
返回值
- 返回类型:
int32_t
返回获取结果
| 返回值 | 触发场景 |
|---|---|
| 0 | 获取成功 |
| -1 | 获取失败;播放器已释放;playerInfo为nullptr |
Enumerations
enum PlayerSeekMode : int32_t {
PLAYER_SEEK_PREVIOUS_SYNC = 0,
PLAYER_SEEK_NEXT_SYNC,
PLAYER_SEEK_CLOSEST_SYNC,
PLAYER_SEEK_CLOSEST,
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PLAYER_SEEK_PREVIOUS_SYNC | 0 | 跳转到给定时间位置之前最近的同步帧 |
| PLAYER_SEEK_NEXT_SYNC | 1 | 跳转到给定时间位置之后最近的同步帧 |
| PLAYER_SEEK_CLOSEST_SYNC | 2 | 跳转到给定时间位置之前或之后最近的同步帧 |
| PLAYER_SEEK_CLOSEST | 3 | 跳转到给定时间位置之前或之后最近的帧 |
enum PlayerStates : uint32_t {
PLAYER_STATE_ERROR = 0,
PLAYER_IDLE = 1 << 0,
PLAYER_INITIALIZED = 1 << 1,
PLAYER_PREPARING = 1 << 2,
PLAYER_PREPARED = 1 << 3,
PLAYER_STARTED = 1 << 4,
PLAYER_PAUSED = 1 << 5,
PLAYER_STOPPED = 1 << 6,
PLAYER_PLAYBACK_COMPLETE = 1 << 7
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PLAYER_STATE_ERROR | 0 | 错误状态 |
| PLAYER_IDLE | 1 | 空闲状态 |
| PLAYER_INITIALIZED | 2 | 已初始化状态 |
| PLAYER_PREPARING | 4 | 准备中状态 |
| PLAYER_PREPARED | 8 | 已准备状态 |
| PLAYER_STARTED | 16 | 播放中状态 |
| PLAYER_PAUSED | 32 | 暂停状态 |
| PLAYER_STOPPED | 64 | 停止状态 |
| PLAYER_PLAYBACK_COMPLETE | 128 | 播放完成状态 |
PlayerCallback::PlayerInfoType : int32_t
enum PlayerInfoType : int32_t {
PLAYER_INFO_PLAY_START = 0,
PLAYER_INFO_PLAYING,
PLAYER_INFO_PLAY_END,
PLAYER_INFO_SEEK_START,
PLAYER_INFO_SEEK_END,
PLAYER_INFO_STOPPED,
PLAYER_INFO_BUTT,
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PLAYER_INFO_PLAY_START | 0 | 播放开始 |
| PLAYER_INFO_PLAYING | 1 | 正在播放 |
| PLAYER_INFO_PLAY_END | 2 | 播放结束 |
| PLAYER_INFO_SEEK_START | 3 | 跳转开始 |
| PLAYER_INFO_SEEK_END | 4 | 跳转结束 |
| PLAYER_INFO_STOPPED | 5 | 已停止 |
| PLAYER_INFO_BUTT | 6 | 信息类型上限 |
PlayerCallback::PlayerErrorType : int32_t
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PLAYER_ERROR_UNKNOWN | 0 | 未知错误 |
PlayerCallback::PlayerErrorCode : int32_t
enum PlayerErrorCode : int32_t {
PLAYER_ERROR_CODE_VID_PLAY_FAIL = 0x0,
PLAYER_ERROR_CODE_AUD_PLAY_FAIL,
PLAYER_ERROR_CODE_DEMUX_FAIL,
PLAYER_ERROR_CODE_TIMEOUT,
PLAYER_ERROR_CODE_NOT_SUPPORT,
PLAYER_ERROR_CODE_UNKNOW,
PLAYER_ERROR_CODE_ILLEGAL_STATEACTION,
PLAYER_ERROR_CODE_BUTT,
};
| 枚举成员 | 取值 | 描述 |
|---|---|---|
| PLAYER_ERROR_CODE_VID_PLAY_FAIL | 0x0 | 视频播放失败 |
| PLAYER_ERROR_CODE_AUD_PLAY_FAIL | 0x1 | 音频播放失败 |
| PLAYER_ERROR_CODE_DEMUX_FAIL | 0x2 | 解复用失败 |
| PLAYER_ERROR_CODE_TIMEOUT | 0x3 | 操作超时 |
| PLAYER_ERROR_CODE_NOT_SUPPORT | 0x4 | 文件格式不支持 |
| PLAYER_ERROR_CODE_UNKNOW | 0x5 | 未知错误 |
| PLAYER_ERROR_CODE_ILLEGAL_STATEACTION | 0x6 | 状态下非法操作 |
| PLAYER_ERROR_CODE_BUTT | 0x7 | 错误码上限 |
Structures
struct PlayerVideoDebugInfo {
int32_t s32UsedVideoStreamIndex;
int32_t enVideoType;
uint32_t u32Width;
uint32_t u32Height;
uint32_t frameBufCnt;
};
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| s32UsedVideoStreamIndex | int32_t | 正在使用的视频流索引 |
| enVideoType | int32_t | 视频编码类型 |
| u32Width | uint32_t | 视频宽度 |
| u32Height | uint32_t | 视频高度 |
| frameBufCnt | uint32_t | 帧缓冲计数 |
struct PlayerAudioDebugInfo {
int32_t s32UsedAudioStreamIndex;
int32_t enAudioType;
uint32_t u32AudioChannelCnt;
uint16_t sampleFmt;
uint32_t u32SampleRate;
uint16_t bitWidth;
};
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| s32UsedAudioStreamIndex | int32_t | 正在使用的音频流索引 |
| enAudioType | int32_t | 音频编码类型 |
| u32AudioChannelCnt | uint32_t | 音频通道数 |
| sampleFmt | uint16_t | 采样格式 |
| u32SampleRate | uint32_t | 采样率 |
| bitWidth | uint16_t | 位宽 |
struct PlayerControlDebugInfo {
uint32_t sessionId;
int32_t outDevice;
int64_t currentPosition;
int64_t rewindPosition;
float speed;
int32_t playerControlState;
bool isSingleLoop;
bool isVideoStarted;
bool isAudioStarted;
bool hasRenderAudioEos;
bool hasRenderVideoEos;
bool offloadAudio;
};
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| sessionId | uint32_t | 音频会话ID |
| outDevice | int32_t | 输出设备ID |
| currentPosition | int64_t | 当前播放位置(毫秒) |
| rewindPosition | int64_t | 跳转目标位置(毫秒) |
| speed | float | 播放速度 |
| playerControlState | int32_t | 播放控制状态 |
| isSingleLoop | bool | 是否单文件循环 |
| isVideoStarted | bool | 视频是否已开始播放 |
| isAudioStarted | bool | 音频是否已开始播放 |
| hasRenderAudioEos | bool | 是否已渲染音频EOS |
| hasRenderVideoEos | bool | 是否已渲染视频EOS |
| offloadAudio | bool | 是否offload音频 |
struct PlayerFileDebugInfo {
uint32_t streamType;
std::string filePath;
int32_t fd;
uint64_t offset;
int64_t s64FileSize;
int64_t s64StartTime;
int64_t s64Duration;
int32_t s32UsedVideoStreamIndex;
int32_t s32UsedAudioStreamIndex;
};
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| streamType | uint32_t | 流类型 |
| filePath | std::string | 文件路径 |
| fd | int32_t | 文件描述符 |
| offset | uint64_t | 文件偏移量 |
| s64FileSize | int64_t | 文件大小 |
| s64StartTime | int64_t | 起始时间 |
| s64Duration | int64_t | 媒体时长 |
| s32UsedVideoStreamIndex | int32_t | 正在使用的视频流索引 |
| s32UsedAudioStreamIndex | int32_t | 正在使用的音频流索引 |
struct PlayerDebugInfo {
PlayerFileDebugInfo fileDebugInfo;
PlayerVideoDebugInfo videoDebugInfo;
PlayerAudioDebugInfo audioDebugInfo;
PlayerControlDebugInfo playControlInfo;
};
成员说明:
| 成员名称 | 数据类型 | 描述 |
|---|---|---|
| fileDebugInfo | PlayerFileDebugInfo | 文件调试信息 |
| videoDebugInfo | PlayerVideoDebugInfo | 视频流调试信息 |
| audioDebugInfo | PlayerAudioDebugInfo | 音频流调试信息 |
| playControlInfo | PlayerControlDebugInfo | 播放控制调试信息 |