Files
ifish/Ifish/GWP2PSDK/GWP2P.framework/Headers/GWP2PPlayer.h
T

168 lines
4.2 KiB
Objective-C
Executable File

//
/** @file GWP2PPlayer.h @brief 播放器基类与其协议 */
// P2PSDK
//
// Created by zengyuying on 17/3/8.
// Copyright © 2017年 gwell. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "GWP2PPlayerDefine.h"
@class GWP2PPlayer;
/**
正在呼叫设备
@param parameters 目前只有一个参数. kP2PCallingIsSameDomainKey:设备与手机是否在同个局域网
*/
typedef void (^P2PCallingBlock)(NSDictionary *parameters);
/**
设备接受了呼叫请求,回调相关参数
@param parameters kP2PCallAcceptIsVideo960PKey:视频是否960P
kP2PCallAcceptIsVideoWidescreenKey:是否是否宽屏(16:9)
*/
typedef void (^P2PAcceptBlock)(NSDictionary *parameters);
/**
设备拒绝了呼叫,回调错误详情
@param error 错误枚举,详见枚举中的注释
@param errorCode 错误码,连接超时时会返回这个错误,详细说明连接超时的原因,详见错误枚举下方的说明
*/
typedef void (^P2PRejectBlock)(GWP2PCallError error, NSString *errorCode);
/**
连接上设备并准备就绪,开始显示画面
*/
typedef void (^P2PReadyBlock)(void);
/**
截图完成回调
@param screenshot UIImage格式截图
@param timeInterval 截图时间戳,注意仅对鱼眼设备有效,转换成时间格式使用时区[NSTimeZone timeZoneForSecondsFromGMT:0]
*/
typedef void (^ScreenshotCompletionBlock)(UIImage *screenshot, NSTimeInterval timeInterval);
/**
@brief 播放器基类的协议
*/
@protocol GWP2PPlayerProtocol <NSObject>
/**
player内部对view添加了手势,每次手势触发时回调
普通设备:swipe(上下左右)
鱼眼设备:tap(单击\双击),pan,pinch
@param gesture 手势
*/
- (BOOL)p2pPlayer:(GWP2PPlayer *)player shouldHandlerSwipeGesture:(UIGestureRecognizer *)gesture;
/**
更新时间戳
@param player 播放器对象
@param pts 显示时间戳(Presentation Time Stamp)
*/
- (void)p2pPlayer:(GWP2PPlayer *)player updatePTS:(NSTimeInterval)pts;
@end
/**
@brief 播放器基类
*/
@interface GWP2PPlayer : NSObject
/** 播放器ViewController */
@property (nonatomic, readonly) UIViewController *viewController;
/** 是否正在播放, 从call开始就为YES,播放中断置为NO */
@property (nonatomic, assign, readonly) BOOL isPlaying;
/** 无声播放 */
@property (nonatomic, assign, getter=isSilent) BOOL silent;
/** 静音, 当`silent=YES`时`mute=YES` */
@property (nonatomic, assign, getter=isMute) BOOL mute;
/** 手势开关 默认开启 (usePano=YES时无效)*/
@property (nonatomic, assign) BOOL enableGesture;
/** 代理 */
@property (nonatomic, weak) id <GWP2PPlayerProtocol> delegate;
/** 是否使用新全景模式(半球,圆柱,画卷,四分,混合,广角)播放 */
@property (nonatomic, assign, readonly) BOOL usePano;
/** 当前全景视频pts,转化成时间戳(秒)=pts/(1000*1000) */
@property (nonatomic, assign, readonly) uint64_t panoPTS;
/**
构造方法
@param usePano 是否使用新全景进行播放。目前所有情况都使用新全景库播放,此接口现在等价于默认的init方法。
@return 实例
*/
- (instancetype)initWithUsingPano:(BOOL)usePano;
/**
停止监控/视频/回放
*/
- (void)p2pStop;
/**
截图
@param completionBlock 回调
*/
- (void)p2pScreenshot:(ScreenshotCompletionBlock)completionBlock;
/**
开始录制视频,当播放器销毁、视频监控中断、切换分辨率时,都会自动停止录制并保存视频
@param savePath 视频保存路径
@param eventHandler 录制开始、异常等事件回调
@param saveAlbum 是否将录制的视频保存到系统相册,将会占用应用沙盒和系统相册两份空间
*/
- (void)startRecordWithSavePath:(NSString *)savePath saveToPhotosAlbum:(BOOL)saveAlbum eventHandler:(MP4RecordEventHandler)eventHandler;
/**
停止录制视频并保存视频
*/
- (void)stopRecord;
/**
设置全景模式
*/
@property (nonatomic, assign) PanoMode showMode;
/**
设置全景切边参数,主要是中心点偏移、边缘剪切
@param x 切边中心点x,范围0~1
@param y 切边中心点y,范围0~1
@param ratio 边缘切边比例,范围0~1
*/
- (void)setCutParam:(float)x y:(float)y ratio:(float)ratio;
/**
设置开启关闭自动巡航
*/
- (void)setWideAngleAuto:(BOOL)isAuto ;
@end