AliyunPlayer  v5.2.0
Aliyun Player API Reference Manual for Windows Platforms
AliPlayer.h
1 #ifndef APSARAVIDEO_PLAYER_H
2 #define APSARAVIDEO_PLAYER_H
3 
4 #include <stdint.h>
5 #include <stdlib.h>
6 #include <windows.h>
7 
8 #include "AVPConfig.h"
9 #include "AVPDef.h"
10 #include "AVPListener.h"
11 #include "AVPMediaInfo.h"
12 #include "AVPSource.h"
13 
14 namespace alivc_player {
15 
16  typedef void (*ApsaraPlayerLogCallback)(void *userData, int prio, char *buf);
17 
18  void ALIVC_EXTERN InitPrivateService(const char *fileContentBuffer, int bufferLength);
19  void ALIVC_EXTERN InitPrivateService(const char *filePath);
20 
21  class ALIVC_EXTERN AliPlayer {
22  public:
23  static AliPlayer *CreatePlayer();
24 
25  virtual ~AliPlayer() = default;
30  virtual void setSource(const AVPUrlSource &source) = 0;
31 
36  virtual void setSource(const AVPVidStsSource &source) = 0;
37 
42  virtual void setSource(const AVPVidMpsSource &source) = 0;
43 
48  virtual void setSource(const AVPVidAuthSource &source) = 0;
49 
53  virtual void prepare() = 0;
54 
58  virtual void start() = 0;
59 
63  virtual void pause() = 0;
64 
68  virtual void reset() = 0;
69 
73  virtual void stop() = 0;
74 
78  virtual void destroy() = 0;
79 
83  virtual void redraw() = 0;
84 
88  virtual void snapshot() = 0;
89 
93  virtual void setListener(IAVPListener *listener) = 0;
94 
98  virtual IAVPListener *getListener() = 0;
99 
103  virtual int64_t getMasterClockPts() = 0;
104 
110  virtual void seekToTime(int64_t time, AVPSeekMode seekMode) = 0;
111 
116  virtual void selectTrack(int trackIndex) = 0;
117 
121  virtual AVPMediaInfo getMediaInfo() = 0;
122 
127  virtual AVPTrackInfo getCurrentTrack(AVPTrackType type) = 0;
128 
133  virtual void getThumbnail(int64_t positionMs) = 0;
134 
138  virtual void setTraceID(const char *traceID) = 0;
139 
143  virtual void setConfig(AVPConfig *config) = 0;
144 
148  virtual AVPConfig *getConfig() = 0;
149 
155  /****
156  @brief Modify cache configuration.
157  @param AVPCacheConfig Cache configuration. {@link AVPCacheConfig}.
158  @return If the cache configuration is modified, YES is returned.
159  */
160  virtual bool setCacheConfig(AVPCacheConfig *cacheConfig) = 0;
161 
168  /****
169  @brief Query the name of the cached file with the specified URL.
170  @brief If the delegation failed, the default logic is used to generate the file name.
171  @param URL The URL of the cached file.
172  @return The name of the cached file. The file extension is not included. All files use the .alv extension. should be freed width alivcFree()
173  */
174  virtual const char *getCacheFilePath(const char *URL) = 0;
175 
176 
185  /****
186  @brief Query the name of the cached file with the specified URL.
187  @param vid The VID of the video.
188  @param format The format of the video.
189  @param definition The definition of the video.
190  @param previewTime The preview duration of the video. if 0, ignore this param
191  @return The name of the cached file. The file extension is not included. All files use the .alv extension.should be freed width alivcFree()
192  */
193  virtual const char *getCacheFilePath(const char *vid, const char *format, const char *definition, int previewTime) = 0;
194 
199  static void alivcFree(void *buffer);
200 
205  /****
206  @brief Add external subtitles
207  @param URL subtitle address
208  */
209  virtual void addExtSubtitle(const char *URL) = 0;
210 
216  /****
217  @brief Select external subtitles
218  @param trackIndex caption index
219  @param enable true: select, false: close
220  */
221  virtual void selectExtSubtitle(int trackIndex, bool enable) = 0;
222 
226  static const char *getSDKVersion();
227 
231  virtual void setMute(bool muted) = 0;
232 
236  virtual bool isMuted() = 0;
237 
241  virtual void setRate(float rate) = 0;
242 
246  virtual float getRate() = 0;
247 
251  virtual void enableHardwareDecoder(bool bEnabled) = 0;
252 
256  virtual bool isEnabledHardwareDecoder() = 0;
257 
261  virtual void setLoop(bool bLoop) = 0;
262 
266  virtual bool isLoop() = 0;
267 
271  virtual void setAutoPlay(bool bAutoPlay) = 0;
272 
276  virtual bool isAutoPlay() = 0;
277 
282  virtual void setMirrorMode(AVPMirrorMode mirrorMode) = 0;
283 
288  virtual AVPMirrorMode getMirrorMode() = 0;
289 
294  virtual void setRotateMode(AVPRotateMode rotateMode) = 0;
295 
300  virtual AVPRotateMode getRotateMode() = 0;
301 
306  virtual void setScalingMode(AVPScalingMode scalingMode) = 0;
307 
312  virtual AVPScalingMode getScalingMode() = 0;
313 
317  virtual void setView(void *view) = 0;
318 
322  virtual void *getView() = 0;
323 
327  virtual int getWidth() = 0;
328 
332  virtual int getHeight() = 0;
333 
337  virtual int getRotation() = 0;
338 
342  virtual void setVolume(float volume) = 0;
343 
347  virtual float getVolume() = 0;
348 
352  virtual int64_t getDuration() = 0;
353 
357  virtual int64_t getCurrentPosition() = 0;
358 
362  virtual int64_t getBufferedPosition() = 0;
363 
367  static void enableLog(AVPLogLevel level);
368 
369  /*
370  * set log callback
371  */
372  static void setLogCallback(ApsaraPlayerLogCallback func, void *arg);
373  };
374 }; // namespace alivc_player
375 #endif// APSARAVIDEO_PLAYER_H
alivc_player::AliPlayer::setCacheConfig
virtual bool setCacheConfig(AVPCacheConfig *cacheConfig)=0
设置缓存配置
alivc_player::AVPVidMpsSource
Definition: AVPSource.h:166
alivc_player::AliPlayer::setView
virtual void setView(void *view)=0
设置播放器的视图view
alivc_player::AliPlayer::destroy
virtual void destroy()=0
销毁播放器
alivc_player::AliPlayer::setVolume
virtual void setVolume(float volume)=0
设置播放器的音量
alivc_player::AliPlayer::selectExtSubtitle
virtual void selectExtSubtitle(int trackIndex, bool enable)=0
选择外挂字幕
alivc_player::AliPlayer::start
virtual void start()=0
开始播放
alivc_player::AVPUrlSource
Definition: AVPSource.h:56
alivc_player::AliPlayer::getWidth
virtual int getWidth()=0
获取视频的宽度
alivc_player::AliPlayer::reset
virtual void reset()=0
重置播放
alivc_player::AliPlayer::setMirrorMode
virtual void setMirrorMode(AVPMirrorMode mirrorMode)=0
设置渲染镜像模式
alivc_player::AliPlayer::getDuration
virtual int64_t getDuration()=0
获取视频的长度, 单位ms
alivc_player::AliPlayer::getCurrentPosition
virtual int64_t getCurrentPosition()=0
获取当前播放位置
alivc_player::AliPlayer::isLoop
virtual bool isLoop()=0
获取是否循环播放
alivc_player::AliPlayer::getListener
virtual IAVPListener * getListener()=0
获取监听
alivc_player::AliPlayer::getSDKVersion
static const char * getSDKVersion()
获取SDK版本号信息
alivc_player::_AVPConfig
Definition: AVPConfig.h:16
alivc_player::AliPlayer::seekToTime
virtual void seekToTime(int64_t time, AVPSeekMode seekMode)=0
跳转到指定的播放位置
alivc_player::AliPlayer::redraw
virtual void redraw()=0
暂停的时候重新绘制
alivc_player::AliPlayer::setSource
virtual void setSource(const AVPVidStsSource &source)=0
用vid和sts来播放视频,临时AccessKeyId、AccessKeySecret和SecurityToken:开启RAM授权,并通过STS授权系统提供的OpenAPI或SDK获取的AccessKe...
alivc_player::AliPlayer::setLoop
virtual void setLoop(bool bLoop)=0
设置是否循环播放
alivc_player::AliPlayer::getMediaInfo
virtual AVPMediaInfo getMediaInfo()=0
获取媒体信息,包括track信息
alivc_player::AliPlayer::getRate
virtual float getRate()=0
获取播放速率,0.5-2.0之间,1为正常播放
alivc_player::AliPlayer::setSource
virtual void setSource(const AVPVidAuthSource &source)=0
使用vid+playauth方式播放。playauth获取方法:https://help.aliyun.com/document_detail/57294.html
alivc_player::AliPlayer::isAutoPlay
virtual bool isAutoPlay()=0
获取是否自动播放
alivc_player::_AVPCacheConfig
Definition: AVPConfig.h:195
alivc_player::AliPlayer::setRate
virtual void setRate(float rate)=0
设置播放速率,0.5-2.0之间,1为正常播放
alivc_player::AVPVidAuthSource
Definition: AVPSource.h:130
alivc_player::AliPlayer::getHeight
virtual int getHeight()=0
获取视频的高度
alivc_player::AliPlayer::getMasterClockPts
virtual int64_t getMasterClockPts()=0
获取主时钟pts
alivc_player::IAVPListener
Definition: AVPListener.h:14
alivc_player::AliPlayer::setSource
virtual void setSource(const AVPUrlSource &source)=0
使用url方式来播放视频
alivc_player::AliPlayer::getRotation
virtual int getRotation()=0
获取视频的旋转角度,从metadata中获取出来
alivc_player::AliPlayer::setTraceID
virtual void setTraceID(const char *traceID)=0
用于跟踪debug信息
alivc_player::AliPlayer::enableLog
static void enableLog(AVPLogLevel level)
设置是否打开log输出
alivc_player::AliPlayer::enableHardwareDecoder
virtual void enableHardwareDecoder(bool bEnabled)=0
设置是否开启硬件解码
alivc_player::AliPlayer::getRotateMode
virtual AVPRotateMode getRotateMode()=0
获取渲染旋转模式
alivc_player::AliPlayer::getBufferedPosition
virtual int64_t getBufferedPosition()=0
获取已经缓存的位置
alivc_player::AliPlayer::getCacheFilePath
virtual const char * getCacheFilePath(const char *URL)=0
根据url获取缓存的文件名。
alivc_player::AliPlayer::stop
virtual void stop()=0
停止播放
alivc_player::AliPlayer::snapshot
virtual void snapshot()=0
截图
alivc_player::AliPlayer::getConfig
virtual AVPConfig * getConfig()=0
获取播放器设置
alivc_player::AliPlayer::getCurrentTrack
virtual AVPTrackInfo getCurrentTrack(AVPTrackType type)=0
获取当前播放track
alivc_player::AliPlayer::setSource
virtual void setSource(const AVPVidMpsSource &source)=0
用vid和MPS信息来播放视频,视频转码服务用户使用播放方式。部分参数参考:https://help.aliyun.com/document_detail/53522....
alivc_player::AliPlayer::getScalingMode
virtual AVPScalingMode getScalingMode()=0
获取渲染填充模式
alivc_player::AliPlayer::prepare
virtual void prepare()=0
播放准备,异步
alivc_player::AliPlayer::getCacheFilePath
virtual const char * getCacheFilePath(const char *vid, const char *format, const char *definition, int previewTime)=0
根据vid获取缓存的文件名。如果有自定义的规则。
alivc_player::AliPlayer::setListener
virtual void setListener(IAVPListener *listener)=0
设置监听
alivc_player::AliPlayer::isMuted
virtual bool isMuted()=0
获取是否静音
alivc_player::AliPlayer::addExtSubtitle
virtual void addExtSubtitle(const char *URL)=0
添加外挂字幕。
alivc_player::AliPlayer::setScalingMode
virtual void setScalingMode(AVPScalingMode scalingMode)=0
设置渲染填充模式
alivc_player::AliPlayer::selectTrack
virtual void selectTrack(int trackIndex)=0
根据trackIndex,切换清晰度
alivc_player::AVPVidStsSource
Definition: AVPSource.h:73
alivc_player::AliPlayer::setConfig
virtual void setConfig(AVPConfig *config)=0
播放器设置
alivc_player::AliPlayer::getThumbnail
virtual void getThumbnail(int64_t positionMs)=0
获取指定位置的缩略图
alivc_player::AliPlayer::getMirrorMode
virtual AVPMirrorMode getMirrorMode()=0
获取渲染镜像模式
alivc_player::AliPlayer::alivcFree
static void alivcFree(void *buffer)
释放内部分配的内存
alivc_player::AliPlayer::getVolume
virtual float getVolume()=0
获取播放器的音量
alivc_player::AliPlayer::pause
virtual void pause()=0
暂停播放
alivc_player::AliPlayer
Definition: AliPlayer.h:21
alivc_player::AliPlayer::getView
virtual void * getView()=0
获取播放器的视图view
alivc_player::AliPlayer::setAutoPlay
virtual void setAutoPlay(bool bAutoPlay)=0
设置是否自动播放
alivc_player::AliPlayer::isEnabledHardwareDecoder
virtual bool isEnabledHardwareDecoder()=0
获取是否开启硬件解码
alivc_player::AliPlayer::setRotateMode
virtual void setRotateMode(AVPRotateMode rotateMode)=0
设置渲染旋转模式
alivc_player::AliPlayer::setMute
virtual void setMute(bool muted)=0
设置是否静音