PLVVodPlayerViewController
Objective-C
@interface PLVVodPlayerViewController
Swift
class PLVVodPlayerViewController
主视频播放器
-
覆盖图层
Declaration
Objective-C
@property (nonatomic, strong) UIView *maskViewSwift
var maskView: UnsafeMutablePointer<Int32>! { get set } -
视频渲染视图
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 } -
是否播放片头,默认 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 } -
拉伸模式
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 } -
跑马灯
Declaration
Objective-C
@property (nonatomic, strong) PLVMarquee *marquee;Swift
var marquee: PLVMarquee! { get set } -
防录屏功能,默认NO关闭
Declaration
Objective-C
@property (nonatomic) BOOL videoCaptureProtect;Swift
var videoCaptureProtect: 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 } -
开始播放时间
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 } -
媒体时长
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) 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 } -
是否允许提示无法进行Seek
Declaration
Objective-C
@property (nonatomic) BOOL allowShowToast;Swift
var allowShowToast: Bool { get set } -
占位视图
Declaration
Objective-C
@property (nonatomic, strong) UIView *placeholderViewSwift
var placeholderView: UnsafeMutablePointer<Int32>! { get set } -
self.view 当前约束
Declaration
Objective-C
@property (nonatomic, strong) NSMutableArray *constraints;Swift
var constraints: NSMutableArray! { get set } -
根控制器
Declaration
Objective-C
@property (nonatomic, weak) UIViewController *rootViewControllerSwift
var rootViewController: UnsafeMutablePointer<Int32>! { 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)play;Swift
func play() -
暂停
Declaration
Objective-C
- (void)pause;Swift
func pause() -
离开播放器并暂停
Declaration
Objective-C
- (void)leavePlayerWithPause;Swift
func leavePlayerWithPause() -
当前时刻的截图
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)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