PLVVodPlayerViewController
Objective-C
@interface PLVVodPlayerViewController
Swift
class PLVVodPlayerViewController
主视频播放器
-
覆盖图层
Declaration
Objective-C
@property (nonatomic, strong) UIView *maskView
Swift
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 *placeholderView
Swift
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 *rootViewController
Swift
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
video
PLVVodVideo 对象
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) -> Bool
Parameters
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!)