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 }

[播放器seek 相关设置]

  • 是否开启记忆播放位置,默认 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 }

[加密视频播放强化,自定义传入token]

  • 请求自定义keyToken。

    Note

    播放加密视频时,若设置此block将优先使用block获取的值来解密视频;没有设置此block则sdk自动处理解密; 请在调用setVideo:方法前设置此block sdk在处理播放加密视频时,切换清晰度、切换线路、播放错误内部重试机制 过程的时候,将会通过此block向外界获取keyToken

    Declaration

    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)