文档中心>物联网智能视频服务(消费版)

多媒体

最近更新时间:2024-08-14 14:14:21

我的收藏

概览

播放器负责音视频解码、播放功能,底层依赖于 P2P 库的推流及音视频同步功能。

类型定义

连接类型
typedef enum CONNECT_TYPE
{
IV_CONN_TYPE_VIDEO_CALL = 0, //双向视频监控
IV_CONN_TYPE_MONITOR = 1, //监控
IV_CONN_TYPE_PLAY_REC_FILE = 2, //回放
IV_CONN_TYPE_TRANSMISSION = 3, //数据传输
IV_CONN_TYPE_NONE = 0xFF
}CONNECT_TYPE;
分辨率类型
typedef enum DEFINITION{
VIDEO_DEFINITION_FL = 0, //流畅
VIDEO_DEFINITION_SD = 1, //标清
VIDEO_DEFINITION_HD = 2, //高清
}DEFINITION;
播放器状态类型
typedef enum {
STATE_IDLE = 0; //播放器初始状态
STATE_INITIALIZED = 1; //已经初始化
STATE_PREPARING = 2; //准备中
STATE_READY = 3; //准备完毕
STATE_LOADING = 4; //加载
STATE_PLAY = 5; //播放状态
STATE_PAUSE = 6; //暂停
STATE_STOP = 7; //停止
}PlayerStateEnum;
编码参数类型
typedef enum {
/**
* 音频类型
*/
AUDIO_TYPE_PCM = 0;
AUDIO_TYPE_G711A = 1;
AUDIO_TYPE_G711U = 2;
AUDIO_TYPE_PT_G726 = 3;
AUDIO_TYPE_PT_AAC = 4;
AUDIO_TYPE_PT_AMR = 5;
AUDIO_TYPE_PT_ADPCMA = 6;
AUDIO_TYPE_MAX = 7;

/**
* 音频采样率
*/
AUDIO_SAMPLE_RATE_8000 = 8000; //!< 8K samplerate
AUDIO_SAMPLE_RATE_11025 = 11025; //!< 11.025K samplerate
AUDIO_SAMPLE_RATE_12000 = 12000; //!< 12K samplerate
AUDIO_SAMPLE_RATE_16000 = 16000; //!< 16K samplerate
AUDIO_SAMPLE_RATE_22050 = 22050; //!< 22.050K samplerate
AUDIO_SAMPLE_RATE_24000 = 24000; //!< 24K samplerate
AUDIO_SAMPLE_RATE_32000 = 32000; //!< 32K samplerate
AUDIO_SAMPLE_RATE_44100 = 44100; //!< 44.1K samplerate
AUDIO_SAMPLE_RATE_48000 = 48000; //!< 48K samplerate
AUDIO_SAMPLE_RATE_64000 = 64000; //!< 64K samplerate
AUDIO_SAMPLE_RATE_96000 = 96000; //!< 96K samplerate

/**
* 音频声音模式
*/
AUDIO_SOUND_MODE_MOMO = 0; /*mono*/
AUDIO_SOUND_MODE_STEREO = 1; /*stereo*/
AUDIO_SOUND_MODE_NONE = 2;

/**
* 音频位宽
*/
AUDIO_BIT_WIDTH_8 = 0; /* 8bit width */
AUDIO_BIT_WIDTH_16 = 1; /* 16bit width*/
AUDIO_BIT_WIDTH_32 = 2; /* 32bit width*/
AUDIO_BIT_WIDTH_NONE = 3;

/**
* 音频每帧采样数
*/
AUDIO_SAMPLE_NUM_80 = 80; //!<
AUDIO_SAMPLE_NUM_160 = 160; //!<
AUDIO_SAMPLE_NUM_320 = 320; //!<
AUDIO_SAMPLE_NUM_480 = 480; //!<
AUDIO_SAMPLE_NUM_1024 = 1024; //!<
AUDIO_SAMPLE_NUM_2048 = 2048; //!<

/**
* 视频类型
*/
VIDEO_TYPE_NONE = 0; //!<
VIDEO_TYPE_H264 = 1; //!<
VIDEO_TYPE_MPEG4 = 2; //!<
VIDEO_TYPE_JPEG = 3; //!<
VIDEO_TYPE_MJPEG = 4; //!<
VIDEO_TYPE_H265 = 5; //!<
}AVConstants;


播放器功能接口

初始化播放器数据源
/**
* 初始化播放器数据源
*
* @param deviceId 设备id
* @param callType 类型参考CONNECT_TYPE
* @param definition 类型参考枚举DEFINITION
* @param sourceId 视频源ID:设备的视频源编号,如一个多摄像头的设备,可用不同的视频源ID来实现多个视频流播放
*/
void setDataResource(char *deviceId, CONNECT_TYPE callType, DEFINITION definition, uint16_t sourceId);
设置音视频渲染组件
/**
* 设置音视频渲染组件
*
* @param view 视频渲染组件
*/
void setVideoView(IotVideoView view);
设置视频编码器
/**
* 设置视频编码器
*
* 说明:音视频语音对讲时可配置,
* 如果设置,播放器视频编码将采用用户自定义的视频编码器。
* 如果不设置,将采用内置的编码器。
* @param encoder 视频编码器
*/
void setVideoEncoder(IVideoEncoder encoder)
设置视频解码器
/**
* 设置视频解码器
*
* 说明:如果设置,播放器视频解码将采用用户自定义的视频解码器。
* 如果不设置,将采用内置的解码器。
* @param decoder 视频解码器
*/
void setVideoDecoder(IVideoDecoder decoder);
设置音频编码器
/**
* 设置视频编码器
*
* 说明:音视频语音对讲时可配置,
* 如果设置,播放器视频编码将采用用户自定义的视频编码器。
* 如果不设置,将采用内置的编码器。
* @param encoder 视频编码器
*/
void setVideoEncoder(IVideoEncoder encoder)
设置音频解码器
/**
* 设置视频解码器
*
* 说明:如果设置,播放器视频解码将采用用户自定义的视频解码器。
* 如果不设置,将采用内置的解码器。
* @param decoder 视频解码器
*/
void setVideoDecoder(IVideoDecoder decoder);
设置视频渲染
/**
* 设置视频渲染
*
* 说明:如果用户自定义视频帧渲染可以设置该接口
* 解码的视频帧(yuv420格式)以回调的形式返回
*/
void setVideoRender(IVideoRender listener);
设置音频渲染
/**
* 设置音频渲染
*
* 说明:如果用户自定义音频渲染可以设置该接口
* 解码的音频帧(PCM格式)以回调的形式返回
*/
void setAudioRender(IAudioRender listener);
准备播放
/**
* 准备播放
*
* 说明:prepare回调可以通过设置setPreparedListener进行监听
*/
void prepare();
开始播放
/**
* 开始播放
*
*/
void play();
停止播放
/**
* 停止播放
*
*/
void stop();
释放资源
/**
* 释放
*
* 说明:播放器使用完毕需要释放
*/
void release();
静音状态判断
/**
* 静音
* @return true==静音,false==非静音
*/
boolean isMute();
静音状态设置
/**
* 设置静音
* @param on true==静音,false==非静音
*/
void mute(boolean on);
开始录像
/**
* 录像
*
* @param path 录像文件路径
* @param listener 录像回调
*/
void startRecord(String path, final IResultListener listener);
停止录像
/**
* 停止录像
*
*/
void stopRecord();
截图
/**
* 视频画面截图
*
* @param path 截图文件路径
* @param listener 截图回调
*/
void snapShot(String path, final IResultListener listener);
获取播放状态类型
/**
* 获取播放状态
*
* @return 状态枚举,参考:
* {@link PlayerStateEnum#STATE_IDLE} 播放器初始状态
*/
int getPlayState()
获取播放的视频宽度
/**
* 获取视频宽
*
* 说明:prepare 后才能获取到该数据,否则返回0
* @return 视频宽度
*/
int getVideoWidth()
获取播放的视频高度
/**
* 获取视频宽
*
* 说明:prepare 后才能获取到该数据,否则返回0
* @return 视频高度
*/
int getVideoHeight()
是否正在播放标识
/**
* 是否在播放
*
* @return true==播放, false==没有播放
*/
bool isPlaying()
设置状态回调
/**
* 设置准备回调
*
*/
void setPreparedListener(IPreparedListener listener);
设置时间回调
/**
* 设置时间回调
*
*/
void setTimeListener(ITimeListener listener);
设置错误回调
/**
* 设置错误回调
*
*/
void setErrorListener(IErrorListener listener);
发送视频函数
void sendVideoData(AVData *data);
发送音频函数
void sendAudioData(AVData *data);