PLVVodMediaPlayer
Objective-C
@interface PLVVodMediaPlayer : PLVMediaPlayerCore
/// 点播播放器特有回调代理,区别基础播放器回调
@property (nonatomic, weak) id <PLVVodMediaPlayerDelegate> delegateVodMediaPlayer;
/// 点播视频数据模型, 保利威视频平台 视频播放方法
@property (nonatomic, strong) PLVVodMediaVideo *video;
/// 播放模式 视频模式、音频模式
@property (nonatomic, assign) PLVVodMediaPlaybackMode playbackMode;
#pragma mark [播放器seek 相关设置]
/// 是否开启记忆播放位置,默认 NO, 开启后从前一播放位置续播
@property (nonatomic, assign) BOOL rememberLastPosition;
/// 是否开启跨端续播(同步其他终端播放进度)
/// 默认YES 只有后台开通了跨端续播的功能且keepPlay 设置为YES 才会生效
@property (nonatomic, assign) BOOL keepPlay;
/// seek 播放定位类型设置。0 默认,1 精确模式
@property (nonatomic, assign) PLVVodMediaPlaySeekType seekType;
/// 音频播放 seek定位类型设置。0 默认,1 快速模式
@property (nonatomic, assign) PLVVodMediaPlayAudioSeekType audioSeekType;
/// seek 优化,从最近的关键帧开始seek, 默认NO
@property (nonatomic, assign) BOOL enableKeyFrameSeek;
#pragma mark [软解、硬解配置]
/// 视频解码是否使用“硬解码”
///
/// @note 硬解码效率更高,而软解码兼容性更好;
/// YES:使用硬解码 NO:使用软解码;
/// 默认值 YES;
@property (nonatomic, assign) BOOL videoToolBox;
#pragma mark [播放器片头、广告 控制]
/// 是否播放片头,默认 NO
@property (nonatomic, assign) BOOL enableTeaser;
/// 片头、片尾播放状态
@property (nonatomic, assign, readonly) PLVVodMediaAssetState teaserState;
/// 是否开启广告,默认 NO--
@property (nonatomic, assign) BOOL enableAd;
/// 广告播放器
@property (nonatomic, strong, readonly) PLVVodMediaAdPlayer *adPlayer;
/// 开启记忆播放 且 有记忆到播放进度的时候,是否先播广告再播正片,默认 NO
@property (nonatomic, assign) BOOL shouldPlayAdBeforeContinue;
#pragma mark [播放时间统计]
/// 已播放进度
@property (nonatomic, assign, readonly) CGFloat playedProgress;
/// 已播放时间点字符串 (示例 "01:23")
@property (nonatomic, copy, readonly) NSString * playedTimeString;
/// 总时长字符串 (示例 "01:23")
@property (nonatomic, copy, readonly) NSString * durationTimeString;
/// 用户观看时长
@property (nonatomic, assign, readonly) NSTimeInterval viewerWatchDuration;
/// 用户停留时间
@property (nonatomic, assign, readonly) NSTimeInterval viewerStayDuration;
/// 用户观看的视频内容时长
@property (nonatomic, assign, readonly) NSTimeInterval videoContentPlayedTime;
#pragma mark [播放线路 ]
/// 路由线路,仅对加密视频有效,传入 POVVodVideo 对象中 availableRouteLines 数组的元素
@property (nonatomic, copy) NSString *routeLine;
#pragma mark [加密视频播放强化,自定义传入token]
/// 请求自定义keyToken。
///
/// @note 播放加密视频时,若设置此block将优先使用block获取的值来解密视频;没有设置此block则sdk自动处理解密;
/// 请在调用setVideo:方法前设置此block
/// sdk在处理播放加密视频时,切换清晰度、切换线路、播放错误内部重试机制 过程的时候,将会通过此block向外界获取keyToken
@property (nonatomic, copy) NSString *(^requestCustomKeyTokenBlock)(NSString *vid);
#pragma mark [本地缓存视频播放 配置]
/// 本地视频优先播放,默认为 YES
@property (nonatomic, assign) BOOL localPrior;
/// 是否为本地缓存播放
@property (nonatomic, assign, readonly) BOOL localPlayback;
#pragma mark [视屏清晰度切换]
/// 切换清晰度
- (void)setPlayQuality:(PLVVodMediaQuality )quality;
/// seek 播放控制, 跳到具体时间点开始播放
- (void)seekToTime:(NSTimeInterval)toTime;
#pragma mark [画中画控制]
/// 开启画中画功能
- (void)startPictureInPicture;
/// 关闭画中画功能
- (void)stopPictureInPicture;
#pragma mark [播放器释放]
/// 清理播放器
- (void)clearPlayer;
#pragma mark [播放第三方平台视频接口]
/// 播放第三方平台视频 播放器初始化
- (instancetype)initWithContentURL:(NSURL *)contentURL;
/// 播放第三方平台视频 视频切换
- (void)setPlayerURL:(NSURL *)playerURL;
@end
Swift
class PLVVodMediaPlayer : PLVMediaPlayerCore
Undocumented
-
点播播放器特有回调代理,区别基础播放器回调
Declaration
Objective-C
@property (nonatomic, weak) id<PLVVodMediaPlayerDelegate> _Nullable delegateVodMediaPlayer;
Swift
weak var delegateVodMediaPlayer: PLVVodMediaPlayerDelegate? { get set }
-
点播视频数据模型, 保利威视频平台 视频播放方法
Declaration
Objective-C
@property (nonatomic, strong) PLVVodMediaVideo *_Nonnull video;
Swift
var video: PLVVodMediaVideo { get set }
-
播放模式 视频模式、音频模式
Declaration
Objective-C
@property (nonatomic) int playbackMode;
Swift
var playbackMode: PLVVodMediaPlaybackMode { get set }
-
是否开启记忆播放位置,默认 NO, 开启后从前一播放位置续播
Declaration
Objective-C
@property (nonatomic) BOOL rememberLastPosition;
Swift
var rememberLastPosition: Bool { get set }
-
是否开启跨端续播(同步其他终端播放进度) 默认YES 只有后台开通了跨端续播的功能且keepPlay 设置为YES 才会生效
Declaration
Objective-C
@property (nonatomic) BOOL keepPlay;
Swift
var keepPlay: Bool { get set }
-
seek 播放定位类型设置。0 默认,1 精确模式
Declaration
Objective-C
@property (nonatomic) PLVVodMediaPlaySeekType seekType;
Swift
var seekType: PLVVodMediaPlaySeekType { get set }
-
音频播放 seek定位类型设置。0 默认,1 快速模式
Declaration
Objective-C
@property (nonatomic) PLVVodMediaPlayAudioSeekType audioSeekType;
Swift
var audioSeekType: PLVVodMediaPlayAudioSeekType { get set }
-
seek 优化,从最近的关键帧开始seek, 默认NO
Declaration
Objective-C
@property (nonatomic) BOOL enableKeyFrameSeek;
Swift
var enableKeyFrameSeek: Bool { get set }
-
视频解码是否使用“硬解码”
Note
硬解码效率更高,而软解码兼容性更好; YES:使用硬解码 NO:使用软解码; 默认值 YES;Declaration
Objective-C
@property (nonatomic) BOOL videoToolBox;
Swift
var videoToolBox: Bool { get set }
-
是否播放片头,默认 NO
Declaration
Objective-C
@property (nonatomic) BOOL enableTeaser;
Swift
var enableTeaser: Bool { get set }
-
片头、片尾播放状态
Declaration
Objective-C
@property (nonatomic, readonly) int teaserState;
Swift
var teaserState: PLVVodMediaAssetState { get }
-
是否开启广告,默认 NO–
Declaration
Objective-C
@property (nonatomic) BOOL enableAd;
Swift
var enableAd: Bool { get set }
-
广告播放器
Declaration
Objective-C
@property (nonatomic, strong, readonly) PLVVodMediaAdPlayer *_Nonnull adPlayer;
Swift
var adPlayer: PLVVodMediaAdPlayer { get }
-
开启记忆播放 且 有记忆到播放进度的时候,是否先播广告再播正片,默认 NO
Declaration
Objective-C
@property (nonatomic) BOOL shouldPlayAdBeforeContinue;
Swift
var shouldPlayAdBeforeContinue: Bool { get set }
-
已播放进度
Declaration
Objective-C
@property (nonatomic, readonly) CGFloat playedProgress;
Swift
var playedProgress: Double { get }
-
已播放时间点字符串 (示例 “01:23”)
Declaration
Objective-C
@property (nonatomic, copy, readonly) NSString *_Nonnull playedTimeString;
Swift
var playedTimeString: String { get }
-
总时长字符串 (示例 “01:23”)
Declaration
Objective-C
@property (nonatomic, copy, readonly) NSString *_Nonnull durationTimeString;
Swift
var durationTimeString: String { 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 }
-
路由线路,仅对加密视频有效,传入 POVVodVideo 对象中 availableRouteLines 数组的元素
Declaration
Objective-C
@property (nonatomic, copy) NSString *_Nonnull routeLine;
Swift
var routeLine: String { get set }
-
请求自定义keyToken。
Note
播放加密视频时,若设置此block将优先使用block获取的值来解密视频;没有设置此block则sdk自动处理解密; 请在调用setVideo:方法前设置此block sdk在处理播放加密视频时,切换清晰度、切换线路、播放错误内部重试机制 过程的时候,将会通过此block向外界获取keyTokenDeclaration
Objective-C
@property (nonatomic, copy) NSString *_Nonnull (^_Nonnull) (NSString *_Nonnull) requestCustomKeyTokenBlock;
Swift
var requestCustomKeyTokenBlock: (String) -> String { get set }
-
本地视频优先播放,默认为 YES
Declaration
Objective-C
@property (nonatomic) BOOL localPrior;
Swift
var localPrior: Bool { get set }
-
是否为本地缓存播放
Declaration
Objective-C
@property (nonatomic, readonly) BOOL localPlayback;
Swift
var localPlayback: Bool { get }
-
切换清晰度
Declaration
Objective-C
- (void)setPlayQuality:(id)quality;
Swift
func setPlay(_ quality: PLVVodMediaQuality)
-
seek 播放控制, 跳到具体时间点开始播放
Declaration
Objective-C
- (void)seekToTime:(NSTimeInterval)toTime;
Swift
func seek(toTime: TimeInterval)
-
开启画中画功能
Declaration
Objective-C
- (void)startPictureInPicture;
Swift
func startPictureInPicture()
-
关闭画中画功能
Declaration
Objective-C
- (void)stopPictureInPicture;
Swift
func stopPictureInPicture()
-
清理播放器
Declaration
Objective-C
- (void)clearPlayer;
Swift
func clear()
-
播放第三方平台视频 播放器初始化
Declaration
Objective-C
- (nonnull instancetype)initWithContentURL:(nonnull NSURL *)contentURL;
Swift
init(contentURL: URL)
-
播放第三方平台视频 视频切换
Declaration
Objective-C
- (void)setPlayerURL:(nonnull NSURL *)playerURL;
Swift
func setPlayerURL(_ playerURL: URL)