PLVMediaPlayerPictureInPictureManager

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

[ 属性 ]

  • avplayer的播放状态

    Declaration

    Objective-C

    @property (nonatomic, readonly) NSInteger playbackState;

    Swift

    var playbackState: Int { get }

可配置项

  • 画中画恢复前的用户界面逻辑代理

    Declaration

    Objective-C

    @property (nonatomic, weak, nullable) id<PLVMediaPlayerPictureInPictureRestoreDelegate> restoreDelegate;

    Swift

    weak var restoreDelegate: PLVMediaPlayerPictureInPictureRestoreDelegate? { get set }
  • 画中画小窗是否开启

    Declaration

    Objective-C

    @property (nonatomic, readonly) BOOL pictureInPictureActive;

    Swift

    var pictureInPictureActive: Bool { get }
  • 画中画当前播放的视频vid

    Declaration

    Objective-C

    @property (nonatomic, readonly) NSString *_Nonnull currentPlaybackVid;

    Swift

    unowned(unsafe) var currentPlaybackVid: NSString { get }
  • 画中画控件(包括播放/暂停、快进、后退)是否可见(YES 可见,NO不可见 默认 YES 可见)

    Declaration

    Objective-C

    @property (nonatomic) BOOL pictureInPictureControlsVisible;

    Swift

    var pictureInPictureControlsVisible: Bool { get set }
  • 是否是后台自动触发小窗模式,不同的触发方式,后续交互不一样 UI交互手动触发小窗,回到上一级页面;app 退到后台自动触发小窗,停留在当前界面

    Declaration

    Objective-C

    @property (nonatomic, readonly) BOOL isBackgroudStartMode;

    Swift

    var isBackgroudStartMode: Bool { get }
  • 是否支持退到后台,自动启动小窗播放

    Declaration

    Objective-C

    @property (nonatomic) BOOL canStartPictureInPictureAutomaticallyFromInline;

    Swift

    var canStartPictureInPictureAutomaticallyFromInline: Bool { get set }

[ 方法 ]

  • 单例方法

    Declaration

    Objective-C

    + (nonnull instancetype)sharedInstance;

    Swift

    class func sharedInstance() -> Self
  • 停止画中画

    Declaration

    Objective-C

    - (void)stopPictureInPicture;

    Swift

    func stopPictureInPicture()
  • 设置画中画播放器的播放速率

    Declaration

    Objective-C

    - (void)setPlaybackRate:(CGFloat)rate;

    Swift

    func setPlaybackRate(_ rate: Double)

    Parameters

    rate

    速率【0,2】