PLVVodPlayerViewController
Objective-C
@interface PLVVodPlayerViewController
Swift
class PLVVodPlayerViewController
主视频播放器
-
覆盖图层
Declaration
Objective-C
@property (nonatomic, strong) UIView *maskView -
视频渲染视图
Declaration
Objective-C
@property (nonatomic, readonly) int *videoView;Swift
var videoView: UnsafeMutablePointer<Int32>! { get } -
video 模型
Declaration
Objective-C
@property (nonatomic, strong) PLVVodVideo *video;Swift
var video: PLVVodVideo! { get set } -
当前清晰度
Declaration
Objective-C
@property (nonatomic, readonly) int quality;Swift
var quality: PLVVodQuality { get } -
用户播放时间
Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval viewerWatchDuration;Swift
var viewerWatchDuration: TimeInterval { get } -
用户停留时间
Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval viewerStayDuration;Swift
var viewerStayDuration: TimeInterval { get } -
播放的视频内容时长
Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval videoContentPlayedTime;Swift
var videoContentPlayedTime: TimeInterval { get } -
其他 viewlog 参数,param1~param5 和 key1~key3 参数值需要 UrlSafeBase64 编码
Declaration
Objective-C
@property (nonatomic, strong) NSDictionary<NSString *, id> *viewlogExtraParams;Swift
var viewlogExtraParams: [String : Any]! { get set } -
本地视频优先播放,默认为 YES
Declaration
Objective-C
@property (nonatomic) BOOL localPrior;Swift
var localPrior: Bool { get set } -
是否为本地播放
Declaration
Objective-C
@property (nonatomic) BOOL localPlayback;Swift
var localPlayback: Bool { get set } -
是否允许后台播放
Declaration
Objective-C
@property (nonatomic) BOOL enableBackgroundPlayback;Swift
var enableBackgroundPlayback: Bool { get set } -
是否需要循环播放, 默认NO (不支持hls视频)
Declaration
Objective-C
@property (nonatomic) BOOL enablePlayRecycle;Swift
var enablePlayRecycle: Bool { get set } -
解码方式设置,默认 YES (硬解码)
Declaration
Objective-C
@property (nonatomic) BOOL isVideoToolBox;Swift
var isVideoToolBox: Bool { get set } -
seek 播放定位类型设置。0 默认,1 精确模式
Declaration
Objective-C
@property (nonatomic) PLVVodPlaySeekType seekType;Swift
var seekType: PLVVodPlaySeekType { get set } -
音频播放 seek定位类型设置。0 默认,1 快速模式
Declaration
Objective-C
@property (nonatomic) PLVVodPlayAudioSeekType audioSeekType;Swift
var audioSeekType: PLVVodPlayAudioSeekType { get set } -
seek 优化,从最近的关键帧开始seek, 默认NO
Declaration
Objective-C
@property (nonatomic) BOOL enableKeyFrameSeek;Swift
var enableKeyFrameSeek: Bool { get set } -
是否播放片头,默认 NO
Declaration
Objective-C
@property (nonatomic) BOOL enableTeaser;Swift
var enableTeaser: Bool { get set } -
离线播放时是否播放片头, 默认YES (只有在enableTeaser 为YES 时有效)
Declaration
Objective-C
@property (nonatomic) BOOL enableLocalTeaser;Swift
var enableLocalTeaser: Bool { get set } -
片头播放状态
Declaration
Objective-C
@property (nonatomic, readonly) int teaserState;Swift
var teaserState: PLVVodAssetState { get } -
是否开启广告,默认 NO
Declaration
Objective-C
@property (nonatomic) BOOL enableAd;Swift
var enableAd: Bool { get set } -
广告播放器
Declaration
Objective-C
@property (nonatomic, strong, readonly) PLVVodAdPlayerViewController *adPlayer;Swift
var adPlayer: PLVVodAdPlayerViewController! { get } -
是否开启记忆播放位置,默认 NO
Declaration
Objective-C
@property (nonatomic) BOOL rememberLastPosition;Swift
var rememberLastPosition: Bool { get set } -
开启记忆播放 且 有记忆到播放进度的时候,是否先播广告再播正片,默认 NO
Declaration
Objective-C
@property (nonatomic) BOOL shouldPlayAdBeforeContinue;Swift
var shouldPlayAdBeforeContinue: Bool { get set } -
拉伸模式
Declaration
Objective-C
@property (nonatomic) PLVVodMovieScalingMode scalingMode;Swift
var scalingMode: PLVVodMovieScalingMode { get set } -
路由线路,仅对加密视频有效,传入 POVVodVideo 对象中 availableRouteLines 数组的元素
Declaration
Objective-C
@property (nonatomic, copy) NSString *routeLine;Swift
var routeLine: String! { get set } -
播放控制
Declaration
Objective-C
@property (nonatomic, strong) id<PLVVodPlayerSkinProtocol> playerControl;Swift
@IBOutlet var playerControl: PLVVodPlayerSkinProtocol! { get set } -
识别手势类型
Declaration
Objective-C
@property (nonatomic, readonly) PLVVodGestureType gestureType;Swift
var gestureType: PLVVodGestureType { get } -
手势识别回调
Declaration
Objective-C
@property (nonatomic, copy) void (^) (PLVVodPlayerViewController *, int *, PLVVodGestureType) gestureCallback;Swift
var gestureCallback: ((PLVVodPlayerViewController?, UnsafeMutablePointer<Int32>?, PLVVodGestureType) -> Void)! { get set } -
手势识别时忽略的视图
Declaration
Objective-C
@property (nonatomic, strong) NSArray *doNotReceiveGestureViews;Swift
var doNotReceiveGestureViews: [Any]! { get set } -
防录屏功能,默认NO关闭
Declaration
Objective-C
@property (nonatomic) BOOL videoCaptureProtect;Swift
var videoCaptureProtect: Bool { get set } -
DNS 优选开关,默认NO关闭
Declaration
Objective-C
@property (nonatomic) BOOL enableDNSOptimize;Swift
var enableDNSOptimize: Bool { get set }
-
自动播放,默认 YES
Declaration
Objective-C
@property (nonatomic) BOOL autoplay;Swift
var autoplay: Bool { get set } -
播放速度
Declaration
Objective-C
@property (nonatomic) double playbackRate;Swift
var playbackRate: Double { get set } -
是否在切换码率/切换音视频播放模式/切换播放线路时,记忆播放速度,默认 YES
Declaration
Objective-C
@property (nonatomic) BOOL rememberPlaybackRate;Swift
var rememberPlaybackRate: Bool { get set } -
播放音量
Declaration
Objective-C
@property (nonatomic) double playbackVolume;Swift
var playbackVolume: Double { get set } -
是否调节系统音量(默认NO,调节播放器音量)
Declaration
Objective-C
@property (nonatomic) BOOL adjustSystemVolume;Swift
var adjustSystemVolume: Bool { get set } -
开始播放时间
Declaration
Objective-C
@property (nonatomic) NSTimeInterval startPlaybackTime;Swift
var startPlaybackTime: TimeInterval { get set } -
当前播放时间
Declaration
Objective-C
@property (nonatomic) NSTimeInterval currentPlaybackTime;Swift
var currentPlaybackTime: TimeInterval { get set } -
起播位置seek定位模式。0 默认,1 精确模式
Declaration
Objective-C
@property (nonatomic) PLVVodPlaySeekType seekTypeAtStart;Swift
var seekTypeAtStart: PLVVodPlaySeekType { get set } -
媒体时长
Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval duration;Swift
var duration: TimeInterval { get } -
可播放时长
Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval playableDuration;Swift
var playableDuration: TimeInterval { get } -
是否就绪播放
Declaration
Objective-C
@property (nonatomic, readonly) BOOL preparedToPlay;Swift
var preparedToPlay: Bool { get } -
是否就绪播放回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(PLVVodPlayerViewController *) preparedToPlayHandler;Swift
var preparedToPlayHandler: ((PLVVodPlayerViewController?) -> Void)! { get set } -
播放状态
Declaration
Objective-C
@property (nonatomic, readonly) PLVVodPlaybackState playbackState;Swift
var playbackState: PLVVodPlaybackState { get } -
播放状态回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(PLVVodPlayerViewController *) playbackStateHandler;Swift
var playbackStateHandler: ((PLVVodPlayerViewController?) -> Void)! { get set } -
画中画状态回调
Declaration
Objective-C
@property (nonatomic, copy) void (^) (PLVVodPlayerViewController *, PLVPictureInPictureState) pictureInPictureStateHandler;Swift
var pictureInPictureStateHandler: ((PLVVodPlayerViewController?, PLVPictureInPictureState) -> Void)! { get set } -
画中画错误回调
Declaration
Objective-C
@property (nonatomic, copy) void (^) (PLVVodPlayerViewController *, NSError *) pictureInPictureErrorHandler;Swift
var pictureInPictureErrorHandler: ((PLVVodPlayerViewController?, Error?) -> Void)! { get set } -
切换清晰度成功
Declaration
Objective-C
@property (nonatomic, copy) void (^)(int) switchQualitySuccessHandler;Swift
var switchQualitySuccessHandler: ((PLVVodQuality) -> Void)! { get set } -
差网络回调(10秒内缓冲次数 >= 2次 || 缓冲时长 > 5s)seek引起的缓冲不计算在内
Declaration
Objective-C
@property (nonatomic, copy) void (^)(void) poorNetWorkHandler;Swift
var poorNetWorkHandler: (() -> Void)! { get set } -
播放模式
Declaration
Objective-C
@property (nonatomic) int playbackMode;Swift
var playbackMode: PLVVodPlaybackMode { get set } -
播放模式回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(PLVVodPlayerViewController *) playbackModeHandler;Swift
var playbackModeHandler: ((PLVVodPlayerViewController?) -> Void)! { get set } -
更新播放模式更新成功回调
Declaration
Objective-C
- (void)playbackModeDidChange;Swift
func playbackModeDidChange() -
Undocumented
Declaration
Objective-C
- (void)updateAudioCoverAnimation:(BOOL)isPlaying;Swift
func updateAudioCoverAnimation(_ isPlaying: Bool) -
加载状态
Declaration
Objective-C
@property (nonatomic, readonly) PLVVodLoadState loadState;Swift
var loadState: PLVVodLoadState { get } -
加载状态回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(PLVVodPlayerViewController *) loadStateHandler;Swift
var loadStateHandler: ((PLVVodPlayerViewController?) -> Void)! { get set } -
是否播放结束,只能判断播放结束,不能判断是成功结束,还是异常结束
Declaration
Objective-C
@property (nonatomic, readonly) BOOL reachEnd;Swift
var reachEnd: Bool { get } -
是否成功播放结束
Declaration
Objective-C
@property (nonatomic, readonly) BOOL reachEndSuccess;Swift
var reachEndSuccess: Bool { get } -
播放结束回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(PLVVodPlayerViewController *) reachEndHandler;Swift
var reachEndHandler: ((PLVVodPlayerViewController?) -> Void)! { get set } -
记忆播放位置
Declaration
Objective-C
@property (nonatomic, readonly) NSTimeInterval lastPosition;Swift
var lastPosition: TimeInterval { get } -
是否正在载入回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(BOOL) loadingHandler;Swift
var loadingHandler: ((Bool) -> Void)! { get set } -
设置全屏方向
Declaration
Objective-C
@property (nonatomic) PLVVodFullScreenOrientation fullScreenOrientation;Swift
var fullScreenOrientation: PLVVodFullScreenOrientation { get set } -
当前是否全屏
Declaration
Objective-C
@property (nonatomic) BOOL fullscreen;Swift
var fullscreen: Bool { get set } -
全屏状态变化回调
Declaration
Objective-C
@property (nonatomic, copy) void (^)(BOOL) didFullScreenSwitch;Swift
var didFullScreenSwitch: ((Bool) -> Void)! { get set } -
本地视频播放,发送viewlog日志开关,默认NO
Declaration
Objective-C
@property (nonatomic) BOOL enableLocalViewLog;Swift
var enableLocalViewLog: Bool { get set } -
播放器错误回调
Declaration
Objective-C
@property (nonatomic, copy) void (^) (PLVVodPlayerViewController *, NSError *) playerErrorHandler;Swift
var playerErrorHandler: ((PLVVodPlayerViewController?, Error?) -> Void)! { get set } -
播放异常结束,手动恢复播放回调。播放异常结束后,该block每10s回调一次,在该block中可实现恢复播放逻辑。
Declaration
Objective-C
@property (nonatomic, copy) void (^)(PLVVodPlayerViewController *) playbackRecoveryHandle;Swift
var playbackRecoveryHandle: ((PLVVodPlayerViewController?) -> Void)! { get set } -
回调视频打点信息
Declaration
Objective-C
@property (nonatomic, copy) void (^)(NSUInteger) videoTipsSelectedHandler;Swift
var videoTipsSelectedHandler: ((UInt) -> Void)! { get set } -
播放进度回调
Declaration
Objective-C
@property (nonatomic, copy) void (^) (PLVVodPlayerViewController *, NSTimeInterval) playbackProgressHandler;Swift
var playbackProgressHandler: ((PLVVodPlayerViewController?, TimeInterval) -> Void)! { get set } -
是否启动 ppt 功能,默认为 NO,此时无论该视频有无 ppt 均不显示
Declaration
Objective-C
@property (nonatomic) BOOL enablePPT;Swift
var enablePPT: Bool { get set } -
是否使用avplayer 播放在线直播转存视频, 默认NO
Declaration
Objective-C
@property (nonatomic) BOOL enableAVPlayer;Swift
var enableAVPlayer: Bool { get set } -
视频加载速率
Declaration
Objective-C
@property (nonatomic, readonly) NSString *tcpSpeed;Swift
var tcpSpeed: String! { get } -
播放器 logo 图层
Declaration
Objective-C
@property (nonatomic, strong, readonly) PLVVodPlayerLogo *logoView;Swift
var logoView: PLVVodPlayerLogo! { get } -
预加载缓冲大小,单位字节。sdk默认10M。10M = 10*1024*1024
Declaration
Objective-C
@property (nonatomic) NSInteger maxCacheSize;Swift
var maxCacheSize: Int { get set } -
预加载缓冲时长, sdk 内部会转换为最小帧数. 如果设置缓冲数据长度为10s,视频帧率为25 ,对应的minCacheFrame 值为 10*25
Declaration
Objective-C
@property (nonatomic) NSInteger maxCacheDuration;Swift
var maxCacheDuration: Int { get set } -
预加载视频最小帧数,缓存数据长度达到最小帧数,不再读取更多数据
Declaration
Objective-C
@property (nonatomic) NSInteger minCacheFrame;Swift
var minCacheFrame: Int { get set } -
流数据探测视频包个数,默认-1,即内部自动处理 详见最佳实践
Declaration
Objective-C
@property (nonatomic) NSInteger fpsProbeSize;Swift
var fpsProbeSize: Int { get set } -
是否允许提示无法进行Seek
Declaration
Objective-C
@property (nonatomic) BOOL allowShowToast;Swift
var allowShowToast: Bool { get set } -
占位视图
Declaration
Objective-C
@property (nonatomic, strong) UIView *placeholderView -
self.view 当前约束
Declaration
Objective-C
@property (nonatomic, strong) NSMutableArray *constraints;Swift
var constraints: NSMutableArray! { get set } -
根控制器
Declaration
Objective-C
@property (nonatomic, weak) UIViewController *rootViewController -
暂停广告中心点X坐标相对于播放器宽度的比例,默认为50%居中,不合法时会相对于播放器居中,范围[1, 99]
Declaration
Objective-C
@property (nonatomic) CGFloat pauseAdCenterXRatio;Swift
var pauseAdCenterXRatio: Double { get set } -
暂停广告中心点Y坐标相对于播放器高度的比例,默认为50%居中,不合法时会相对于播放器居中,范围[1, 99]
Declaration
Objective-C
@property (nonatomic) CGFloat pauseAdCenterYRatio;Swift
var pauseAdCenterYRatio: Double { get set } -
暂停广告宽度相对于播放器宽度的比例,单位%,范围[1, 99],
Declaration
Objective-C
@property (nonatomic) CGFloat pauseAdWidthRatio;Swift
var pauseAdWidthRatio: Double { get set } -
暂停广告高度相对于播放器高度的比例,单位%,范围[1, 99]
Declaration
Objective-C
@property (nonatomic) CGFloat pauseAdHeightRatio;Swift
var pauseAdHeightRatio: Double { get set } -
请求自定义keyToken。 播放加密视频时,若设置此block将优先使用block获取的值来解密视频;没有设置此block则sdk自动处理解密; 请在调用setVideo:方法前设置此block sdk在处理播放加密视频、切换清晰度、切换线路、播放错误内部重试机制 过程的时候,将会通过此block向外界获取keyToken
Declaration
Objective-C
@property (nonatomic, copy) NSString * (^) (NSString *)requestCustomKeyTokenBlock;Swift
var requestCustomKeyTokenBlock: ((String?) -> String?)! { get set } -
返回当前播放视频的 pid
Declaration
Objective-C
- (NSString *)getPlayId;Swift
func getPlayId() -> String! -
返回播放器实时状态
Declaration
Objective-C
- (NSDictionary *)getRealPlayStatus;Swift
func getRealPlayStatus() -> [AnyHashable : Any]! -
指定/切换 PLVVodVideo 对象,及其清晰度
Declaration
Objective-C
- (void)setVideo:(PLVVodVideo *)video quality:(id)quality;Swift
func setVideo(_ video: PLVVodVideo!, quality: PLVVodQuality)Parameters
videoPLVVodVideo 对象
quality清晰度
-
切换码率,若码率不符合则自动切换到附近的清晰度
Declaration
Objective-C
- (void)switchQuality:(id)quality;Swift
func switchQuality(_ quality: PLVVodQuality)Parameters
quality清晰度
-
切换软硬解
Declaration
Objective-C
- (void)switchVideoToolBox:(BOOL)hardToDecode;Swift
func switchVideoToolBox(_ hardToDecode: Bool)Parameters
hardToDecode是否硬解
-
播放
Declaration
Objective-C
- (void)play;Swift
func play() -
暂停
Declaration
Objective-C
- (void)pause;Swift
func pause() -
暂停,不显示暂停广告
Declaration
Objective-C
- (void)pauseWithoutAd;Swift
func pauseWithoutAd() -
离开播放器并暂停
Declaration
Objective-C
- (void)leavePlayerWithPause;Swift
func leavePlayerWithPause() -
恢复播放片头
Declaration
Objective-C
- (void)resumeTeaserPlayer;Swift
func resumeTeaserPlayer() -
当前时刻的截图
Declaration
Objective-C
- (id)snapshot;Swift
func snapshot() -> Any! -
播放时间显示字符串,子类中重写该方法,可实现自定义播放器时间显示
Declaration
Objective-C
- (NSString *)timeDescription;Swift
func timeDescription() -> String! -
获取视频的宽高;在视频播放就绪后可获取到数值,可在preparedToPlayHandler中根据就绪状态来获取
Declaration
Objective-C
- (CGSize)getVideoSize;Swift
func getVideoSize() -> CGSize -
检查该视频模型是否将本地播放
Declaration
Objective-C
- (BOOL)checkVideoWillPlayLocal:(PLVVodVideo *)video;Swift
func checkVideoWillPlayLocal(_ video: PLVVodVideo!) -> Bool
-
播放或暂停 Action
Declaration
Objective-C
- (void)playPauseAction:(id)sender;Swift
@IBAction func playPauseAction(_ sender: Any!) -
播放进度滑杆 TouchDown Action
Declaration
Objective-C
- (void)playbackSliderTouchDownAction:(id)sender;Swift
@IBAction func playbackSliderTouchDownAction(_ sender: Any!) -
播放进度滑杆 ValueChange Action
Declaration
Objective-C
- (void)playbackSliderValueChangeAction:(id)sender;Swift
@IBAction func playbackSliderValueChangeAction(_ sender: Any!) -
播放进度滑杆 TouchUpCancel Action
Declaration
Objective-C
- (void)playbackSliderTouchUpCancelAction:(id)sender;Swift
@IBAction func playbackSliderTouchUpCancelAction(_ sender: Any!) -
亮度滑杆调节 Action
Declaration
Objective-C
- (void)brightnessAction:(id)sender;Swift
@IBAction func brightnessAction(_ sender: Any!) -
音量滑杆调节 Action
Declaration
Objective-C
- (void)volumeAction:(id)sender;Swift
@IBAction func volumeAction(_ sender: Any!) -
添加播放器到占位视图上
placeholderView为竖屏时的占位视图,该视图需要先布局,播放器会参照该视图的布局而进行竖屏的布局。Declaration
Objective-C
- (void)addPlayerOnPlaceholderView:(id)placeholderView rootViewController:(id)rootViewController;Swift
func addPlayer(onPlaceholderView placeholderView: Any!, rootViewController: Any!)Parameters
placeholderView竖屏状态时的占位视图
rootViewController播放器所在页面的 UIViewController 对象
-
开启画中画功能
Declaration
Objective-C
- (void)startPictureInPicture;Swift
func startPictureInPicture() -
关闭画中画功能
Declaration
Objective-C
- (void)stopPictureInPicture;Swift
func stopPictureInPicture() -
播放外部平台视频,保利威平台视频不能采用该方法
Declaration
Objective-C
- (void)setURL:(NSURL *)videoUrl;Swift
func setURL(_ videoUrl: URL!)Parameters
videoUrl外部视频url 地址
-
播放外部平台视频,保利威平台视频不能采用该方法
Declaration
Objective-C
- (void)setURL:(NSURL *)videoUrl withHeaders:(NSDictionary<NSString *, NSString *> *)headers;Swift
func setURL(_ videoUrl: URL!, withHeaders headers: [String : String]!)Parameters
videoUrl外部视频url 地址
headers请求头设置
-
手动销毁播放器,单例播放等少数特别场景才需要调用此方法
Declaration
Objective-C
- (void)destroyPlayer;Swift
func destroyPlayer() -
自定义片头设置
Declaration
Objective-C
- (BOOL)setCustomTeaser:(NSString *)teaserUrl teaserDuration:(NSInteger)teaserDuration;Swift
func setCustomTeaser(_ teaserUrl: String!, teaserDuration: Int) -> BoolParameters
teaserUrl片头url,图片支持png,jpg,gif; 视频支持mp4,flv
teaserDuration片头播放时长,片头时长大于视频时长时,以视频实际时长为准
Return Value
YES,设置成功; NO,设置失败,参数错误
-
为播放器增加 logo,一个播放器只能添加一个 PLVVodPlayerLogo 对象
Declaration
Objective-C
- (void)addPlayerLogo:(PLVVodPlayerLogo *)logo;Swift
func add(_ logo: PLVVodPlayerLogo!) -
Deprecated
Please use [PLVVodSkinPlayerController playInFullscreen:] instead
Undocumented
Declaration
Objective-C
- (void)setPlayerFullScreen:(BOOL)full DEPRECATED_MSG_ATTRIBUTE("Please use [PLVVodSkinPlayerController playInFullscreen:] instead");Swift
func setPlayerFullScreen(_ full: Bool) -
Deprecated
Please use [PLVVodUtils changeDeviceOrientation:] instead
旋转设备到指定方向
Declaration
Objective-C
+ (void)rotateOrientation:(id)orientation;Swift
class func rotateOrientation(_ orientation: Any!)
View on GitHub
PLVVodPlayerViewController Class Reference