Classes

The following classes are available globally.

  • 广告播放器

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaAdPlayer

    Swift

    class PLVVodMediaAdPlayer
  • 广告数据模型

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaAd : NSObject

    Swift

    class PLVVodMediaAd : NSObject
  • 视频数据模型

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaVideo : NSObject

    Swift

    class PLVVodMediaVideo : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaVideoKeyFrameItem : NSObject
    
    @property (nonatomic, copy) NSString *hours;   // 小时
    @property (nonatomic, copy) NSString *minutes; // 分钟
    @property (nonatomic, copy) NSString *seconds; // 秒
    @property (nonatomic, copy) NSString *keycontext; // 关键帧描述
    @property (nonatomic, copy) NSString *id;       // 记录id
    @property (nonatomic, copy) NSString *keytime;  // 打点时间
    
    @end

    Swift

    class PLVVodMediaVideoKeyFrameItem : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaVideoSubtitleItem : NSObject
    
    @property (nonatomic, copy, readonly) NSString *title; // 字幕名称
    @property (nonatomic, copy, readonly) NSString *url; // 字幕地址
    
    @end

    Swift

    class PLVVodMediaVideoSubtitleItem : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaVideoDoubleSubtitleItem : NSObject
    
    @property (nonatomic, copy, readonly) NSString *position; // 双字幕位置。topSubtitles-上方字幕;bottomSubtitles-下方字幕
    @property (nonatomic, copy, readonly) NSString *title; // 字幕名称
    @property (nonatomic, copy, readonly) NSString *url; // 字幕地址
    
    @end

    Swift

    class PLVVodMediaVideoDoubleSubtitleItem : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaVideoSubtitlesStyle : NSObject
    
    @property (nonatomic, copy, readonly) NSString *style; // 字幕模式。single-单字幕;double-双字幕
    @property (nonatomic, copy, readonly) NSString *position; // 位置,单字幕时为空。top-上方字幕;bottom-下方字幕
    @property (nonatomic, copy, readonly) NSString *fontColor; // 字体颜色,16进制RGB,例如#FFFFFF
    @property (nonatomic, assign, readonly) BOOL fontBold; // 是否加粗,YES-加粗;NO-不加粗
    @property (nonatomic, assign, readonly) BOOL fontItalics; // 是否倾斜,YES-倾斜;NO-不倾斜
    @property (nonatomic, copy, readonly) NSString *backgroundColor; // 背景色,RGBA,例如rgba(0, 0, 0, 0.7)
    
    @end

    Swift

    class PLVVodMediaVideoSubtitlesStyle : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaVideoPlayerSetting : NSObject
    
    @property (nonatomic, assign) BOOL subtitlesEnabled; // 字幕是否显示。NO-不显示字幕;YES-默认显示第一份字幕文件,若双字幕开启且双字幕为默认字幕,则默认显示双字幕
    @property (nonatomic, assign) BOOL subtitlesDoubleDefault; // 设置双字幕为默认字幕
    @property (nonatomic, assign) BOOL subtitlesDoubleEnabled; // 双字幕功能是否开启。NO-未开启;YES-开启
    @property (nonatomic, strong) NSArray <PLVVodMediaVideoSubtitlesStyle *> *subtitles; // 字幕样式
    
    @end

    Swift

    class PLVVodMediaVideoPlayerSetting : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVMediaPlayerPictureInPictureManager : NSObject
    
    #pragma mark - [ 属性 ]
    
    /// avplayer的播放状态
    @property (nonatomic, assign, readonly) NSInteger playbackState;
    
    #pragma mark 可配置项
    
    /// 画中画恢复前的用户界面逻辑代理
    @property (nonatomic, weak, nullable) id <PLVMediaPlayerPictureInPictureRestoreDelegate> restoreDelegate;
    
    /// 画中画小窗是否开启
    @property (nonatomic, assign, readonly) BOOL pictureInPictureActive;
    
    /// 画中画当前播放的视频vid
    @property (nonatomic, assign, readonly) NSString *currentPlaybackVid;
    
    /// 画中画控件(包括播放/暂停、快进、后退)是否可见(YES 可见,NO不可见 默认 YES 可见)
    @property (nonatomic, assign) BOOL pictureInPictureControlsVisible;
    
    /// 是否是后台自动触发小窗模式,不同的触发方式,后续交互不一样
    /// UI交互手动触发小窗,回到上一级页面;app 退到后台自动触发小窗,停留在当前界面
    @property (nonatomic, assign, readonly) BOOL isBackgroudStartMode;
    
    /// 是否支持退到后台,自动启动小窗播放
    @property (nonatomic, assign) BOOL canStartPictureInPictureAutomaticallyFromInline;
    
    
    #pragma mark - [ 方法 ]
    
    /// 单例方法
    + (instancetype)sharedInstance;
    
    /// 停止画中画
    - (void)stopPictureInPicture;
    
    /// 设置画中画播放器的播放速率
    /// @param rate 速率【0,2】
    - (void)setPlaybackRate:(CGFloat)rate;
    
    @end

    Swift

    class PLVMediaPlayerPictureInPictureManager : NSObject
  • Undocumented

    See more

    Declaration

    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
  • 视频下载管理单例

    See more

    Declaration

    Objective-C

    @interface PLVDownloadMediaManager : NSObject

    Swift

    class PLVDownloadMediaManager : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVDownloadInfo : NSObject
    
    /// 唯一标识
    @property (nonatomic, copy, readonly) NSString *identifier;
    
    /// PLVVodMediaVideo 对象
    @property (nonatomic, strong, readonly) PLVVodMediaVideo *video;
    
    /// vid 便捷属性
    @property (nonatomic, copy, readonly) NSString *vid;
    
    /// 清晰度
    @property (nonatomic, assign, readonly) PLVVodMediaQuality quality;
    
    /// 下载状态
    @property (nonatomic, assign, readonly) PLVVodDownloadState state;
    
    /// 下载速率(单位:byte/s)
    @property (nonatomic, assign, readonly) double bytesPerSeconds;
    
    /// 下载进度(0-1)
    @property (nonatomic, assign, readonly) double progress;
    
    /// 解压进度(0-1)
    @property (nonatomic, assign, readonly) double unzipProgress;
    
    /// 下载错误
    @property (nonatomic, strong, readonly) NSError *error;
    
    /// 队列ID
    @property (nonatomic, assign, readonly) NSInteger downloadId;
    
    /// 文件类型,默认为视频
    @property (nonatomic, assign, readonly) PLVDownloadFileType fileType;
    
    /// 请求cdn资源时的唯一标志
    @property (nonatomic, copy, readonly) NSString *did;
    
    #pragma mark [UI 展示]
    /// 封面
    @property (nonatomic, copy, readonly) NSString *snapshot;
    /// 视频名称
    @property (nonatomic, copy, readonly) NSString *title;
    /// 文件大小
    @property (nonatomic, assign, readonly) NSUInteger filesize;
    /// 视频时长
    @property (nonatomic, assign, readonly) NSUInteger duration;
    
    #pragma mark [下砸过程回调]
    @property (nonatomic, copy) void (^stateDidChangeBlock)(PLVDownloadInfo *info);
    @property (nonatomic, copy) void (^bytesPerSecondsDidChangeBlock)(PLVDownloadInfo *info);
    @property (nonatomic, copy) void (^progressDidChangeBlock)(PLVDownloadInfo *info);
    @property (nonatomic, copy) void (^unzipProgressDidChangeBlock)(PLVDownloadInfo *info);
    
    @end

    Swift

    class PLVDownloadInfo : NSObject
  • 本地视频数据模型(PLVVodVideo 子类)

    See more

    Declaration

    Objective-C

    @interface PLVLocalVideo : PLVVodMediaVideo

    Swift

    class PLVLocalVideo : PLVVodMediaVideo
  • viewlog 参数设置

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaViewerInfo : NSObject

    Swift

    class PLVVodMediaViewerInfo : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaSettings : NSObject
    
    /// userid
    @property (nonatomic, copy, readonly) NSString *userid;
    
    /// readtoken
    @property (nonatomic, copy, readonly) NSString *readtoken;
    
    /// writetoken
    @property (nonatomic, copy, readonly) NSString *writetoken;
    
    /// secretkey
    @property (nonatomic, copy, readonly) NSString *secretkey;
    
    /// 子账号appid
    @property (nonatomic, copy, readonly) NSString *appid;
    
    /// 请求自定义keyToken。
    /// 下载加密视频时,若设置此block将优先使用block获取的值来解密视频;没有设置此block则sdk自动处理解密;
    @property (nonatomic, copy) NSString *(^requestCustomKeyTokenBlock)(NSString *vid);
    
    /// 终端用户id
    @property (nonatomic, copy) NSString *viewerId;
    
    /// 终端用户昵称
    @property (nonatomic, copy) NSString *viewerName;
    
    /// 终端用户头像
    @property (nonatomic, copy) NSString *viewerAvatar;
    
    /// viewlog 参数设置
    @property (nonatomic, strong) PLVVodMediaViewerInfo *viewerInfos;
    
    /// 终端用户播放令牌额外参数
    @property (nonatomic, copy) NSString *viewerTokenExtraParam;
    
    /// 是否启用多账户,默认 NO。开启后可播放、下载除了配置的账号以外的其他账号的非加密视频。
    @property (nonatomic, assign, getter=isMutilAccount) BOOL mutilAccount;
    
    /// 日志输出等级,默认 PLVVodMediaLogLevelWithoutDebug
    @property (nonatomic, assign) PLVVodMediaLogLevel logLevel;
    
    /// 是否启动 HTTPDNS,默认 YES. 优先级低于远端的httpDnsMode属性
    @property (nonatomic, assign) BOOL enableHttpDNS;
    /// 是否启用 IPV6,如果启用,将自动选择IP,取消HTTPDNS
    @property (nonatomic, assign) BOOL enableIPV6;
    /// 延迟启动 HttpDNS,enableHttpDNS 为 YES 时生效,默认 NO
    @property (class, nonatomic, assign) BOOL delayHttpDNS DEPRECATED_MSG_ATTRIBUTE("HttpDNS将在获取视频信息的时候启动,此属性已废弃");
    /// 延迟启动 HttpDNS 的时间,delayHttpDNS 为 YES 时生效,默认 2(单位:秒)
    @property (class, nonatomic, assign) NSInteger delayHttpDNSTime DEPRECATED_MSG_ATTRIBUTE("HttpDNS将在获取视频信息的时候启动,此属性已废弃");
    
    /// 错误回调
    @property (nonatomic, copy) void (^settingErrorHandler)(NSError *error);
    
    /**
     获取 PLVVodMediaSettings 静态对象
    
     @return PLVVodMediaSettings 静态对象
     */
    + (instancetype)sharedSettings;
    
    /**
     通过 userid、readtoken、writetoken、secretkey 配置账号
    
     @param userid userid
     @param readtoken readtoken
     @param writetoken writetoken
     @param secretkey secretkey
     @return 新的 PLVVodMediaSettings 静态对象
     */
    + (instancetype)settingsWithUserid:(NSString *)userid readtoken:(NSString *)readtoken writetoken:(NSString *)writetoken secretkey:(NSString *)secretkey;
    
    /**
     使用加密串配置账号
    
     @param configString 加密串
     @param error 解密、配置过程的错误
     @return 新的 PLVVodMediaSettings 静态对象
     */
    + (instancetype)settingsWithConfigString:(NSString *)configString error:(NSError **)error ;
    
    /**
     使用加密串、加密秘钥、加密向量配置账号
    
     @param configString 加密串
     @param key 加密秘钥
     @param iv 加密向量
     @param error 解密、配置过程的错误
     @return 新的 PLVVodMediaSettings 静态对象
     */
    + (instancetype)settingsWithConfigString:(NSString *)configString key:(NSString *)key iv:(NSString *)iv error:(NSError **)error;
    
    /**
     
     通过appid,secretkey,总帐号userid 配置子帐号
     
     @param appId       子帐号appid
     @param secretKey   子帐号加密key
     @param userId      总帐号userid
     
     */
    + (instancetype)settingsWithAppId:(NSString *)appId secretKey:(NSString *)secretKey userId:(NSString *)userId;
    
    
    #pragma mark -- 多账号相关 --
    /// 多账号就是在特殊场景下,可以同时播放和下载来自不同账号的视频。
    
    /// 通过 userid、readtoken、writetoken、secretkey 添加多账号,请先使用主账号初始化SDK后再调用
    /// @param userid userid
    /// @param readtoken readtoken
    /// @param writetoken writetoken
    /// @param secretkey secretkey
    /// @param error 解密、配置过程的错误
    + (instancetype)addAccountWithUserid:(NSString *)userid readtoken:(NSString *)readtoken writetoken:(NSString *)writetoken secretkey:(NSString *)secretkey error:(NSError **)error;
    
    /// 使用加密串添加账号,请先使用主账号初始化SDK后再调用
    /// @param configString 加密串
    /// @param error 解密、配置过程的错误
    + (instancetype)addAccountWithConfigString:(NSString *)configString error:(NSError **)error;
    
    /// 使用加密串、加密秘钥、加密向量添加账号,请先使用主账号初始化SDK后再调用
    /// @param configString 加密串
    /// @param key 加密秘钥
    /// @param iv 加密向量
    /// @param error 解密、配置过程的错误
    + (instancetype)addAccountWithConfigString:(NSString *)configString key:(NSString *)key iv:(NSString *)iv error:(NSError **)error;
    
    /// 移除多账号中的账号信息(即:UserId、ReadToken、SecretKey)
    /// @param userId 多账号的userid
    + (void)removeAccountWithUserId:(NSString *)userId;
    
    /// 在多账号中查找vid归属账号的userid
    /// @param vid 视频id
    /// @return userid,为nil则表示该账号暂未添加
    + (NSString *)findUserIdWithVid:(NSString *)vid;
    
    /// 在多账号中查找vid归属账号的readtoken
    /// @param vid 视频id
    /// @return readtoken,为nil则表示该账号暂未添加
    + (NSString *)findReadTokenWithVid:(NSString *)vid;
    
    /// 在多账号中查找vid归属账号的secretkey
    /// @param vid 视频id
    /// @return secretkey,为nil则表示该账号暂未添加
    + (NSString *)findSecretKeyWithVid:(NSString *)vid;
    
    
    @end

    Swift

    class PLVVodMediaSettings : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVMediaPlayerCore : NSObject
    
    #pragma mark - [ 属性 ]
    #pragma mark 可配置项
    /// delegate
    @property (nonatomic, weak) id <PLVMediaPlayerCoreDelegate> coreDelegate;
    
    /// 播放器是否自动播放
    @property (nonatomic, assign) BOOL autoPlay;
    
    /// App进入后台时,是否暂停 主播放器 播放
    ///
    /// @note 若需支持‘后台播放’,则需同时在 TARGETS - Capability - Background Modes 中勾选 “Audio, AirPlay, and Picture in Picture”;
    ///       YES:关闭后台播放 NO:开启后台播放;默认值 NO;
    ///       从后台进入前台时,主播放器不会自动恢复播放。请根据业务需要,自行调用恢复播放方法;
    @property (nonatomic, assign) BOOL pausePlayerInBackground;
    
    /// 开启后台模式,启动画中画播放功能,  默认NO
    @property (nonatomic, assign) BOOL enablePIPInBackground;
    
    #pragma mark 数据
    /// 视频缓存时长
    @property (nonatomic, readonly) int64_t videoCacheDuration;
    
    /// 视频下载速率
    @property (nonatomic, readonly) int64_t originalTcpSpeed;
    
    /// 视频下载速率字符串 (示例 "100KB/s")
    @property (nonatomic, readonly) NSString * tcpSpeed;
    
    /// 视频大小
    @property (nonatomic, readonly) CGSize naturalSize;
    
    /// 视频流量
    @property (nonatomic, readonly) CGFloat flow;
    
    /// 当前播放时间点 (单位:秒)
    @property (nonatomic, readonly) NSTimeInterval currentPlaybackTime;
    
    /// 视频总时长
    @property (nonatomic, readonly) NSTimeInterval duration;
    
    /// 当前已缓存时长
    @property (nonatomic, readonly) NSTimeInterval playableDuration;
    
    /// 当前倍速
    @property (nonatomic, assign, readonly) CGFloat currentSpeed;
    
    #pragma mark 状态
    
    /// 播放器播放状态
    @property (nonatomic, assign, readonly) PLVPlaybackState playbackState;
    
    /// 播放器加载状态
    @property (nonatomic, assign, readonly) PLVPlayerLoadState playerLoadState;
    
    /// 播放器的缩放模式,默认为IJKMPMovieScalingModeAspectFit
    @property (nonatomic, assign, readonly) IJKMPMovieScalingMode scalingMode;
    
    /// 是否正在播放中
    @property (nonatomic, assign, readonly) BOOL playing;
    
    #pragma mark 功能对象
    /// 由外部传入的,负责承载播放器画面的父视图
    ///
    /// @note 需调用 [setupDisplaySuperview:] 方法来设置
    @property (nonatomic, strong, readonly) UIView * displaySuperview;
    
    #pragma mark - [ 方法 ]
    #pragma mark 通用
    /// 播放主体内容
    ///
    /// @note 初始化播放器;
    ///
    /// @param contentURL 媒体地址
    /// @param options 播放器配置选项
    - (void)initPlayerWithContentURL:(NSURL *)contentURL withOptions:(PLVOptions *)options;
    
    /// 初始化私有加密播放器
    - (void)initPlayerWithPrefixUrlString:(NSString *)prefixURLString urlData:(NSData *)urlData withOptions:(PLVOptions *)options;
    
    
    /// 设置 承载播放器画面 的父视图
    ///
    /// @param displayeSuperview 承载播放器画面的父视图
    - (void)setupDisplaySuperview:(UIView *)displayeSuperview;
    
    /// 设置 播放器 的缩放模式
    ///
    /// @param scalingMode 缩放模式,默认为IJKMPMovieScalingModeAspectFit
    - (void)setupScalingMode:(IJKMPMovieScalingMode)scalingMode;
    
    /// 清理 主播放器
    - (void)clearMainPlayer;
    
    /// 清理 全部播放器
    - (void)clearAllPlayer;
    
    /// 暂停 主播放器 播放
    - (void)pause;
    
    /// 静音 主播放器
    - (void)mute;
    
    /// 取消静音 主播放器
    - (void)cancelMute;
    
    /// 开始 主播放器 播放
    - (void)play;
    
    /// 主播放器 视频跳至某个时间点
    - (void)seekToTime:(NSTimeInterval)toTime;
    
    /// 主播放器 切换倍速 (范围值 0.0~2.0)
    - (void)switchSpeedRate:(CGFloat)toSpeed;
    
    /// 当前时间截图
    - (UIImage *)snapshot;
    
    @end

    Swift

    class PLVMediaPlayerCore : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaColorUtil : NSObject
    
    + (UIColor *)colorFromHexString:(NSString *)hexString;
    
    + (UIColor *)colorFromHexString:(NSString *)hexString alpha:(float)alpha;
    
    + (UIImage *)createImageWithColor:(UIColor *)color;
    
    @end

    Swift

    class PLVVodMediaColorUtil
  • 弱引用代理类

    Note

    用于解决某些系统方法会强制持有 self,导致不自动释放,而不走dealloc的问题
    // 创建 Timer 时,以 weakProxy 作为 target 参数
    PLVVodMediaFWeakProxy * weakProxy = [PLVVodMediaFWeakProxy proxyWithTarget:self];
    _timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:weakProxy selector:@selector(timerEvent:) userInfo:nil repeats:NO];
    
    // 则 dealloc 会正常被调用,并可在此时对 Timer 进行释放
    - (void)dealloc{
       [_timer invalidate];
       _timer = nil;
    }
    
    See more

    Declaration

    Objective-C

    @interface PLVVodMediaFWeakProxy : NSProxy

    Swift

    class PLVVodMediaFWeakProxy : NSProxy
  • Foundation 通用工具类

    See more

    Declaration

    Objective-C

    @interface PLVVodMediaFdUtil : NSObject

    Swift

    class PLVVodMediaFdUtil : NSObject