Skip to content

5_Improve

Sidney edited this page Dec 5, 2017 · 1 revision

5.1 参数配置

当你要深入理解 SDK 的一些参数及有定制化需求时,可以从高级功能部分中查询阅读。

defaultDecodeMethod 解码方式分软解码和硬解码

UrlType 播放地址类型,区分为本地视频,网络视频,直播视频,使用UrlTypeAuto程序会根据相关规则为你选择播放类型,如果是http-flv直播,请必须设置为UrlTypeLive,hls点播必须设置为UrlTypeHttp;
currentPlaybackTime 当前播放时间点;
duration 视频总时间;
playableDuration 媒体可播放时长,主要用于表示网络媒体已下载视频时长
bufferingProgress 视频缓冲进度;
isPreparedToPlay 是否准备好可以播放
playbackState 媒体播放状态;
loadState 网络媒体加载状态
shouldAutoplay 是否自动播放

5.2 API介绍

5.2.1 主要方法

UCloudMediaPlayer.h

/**
 *  初始化mediaPlayer
 *
 *  @return UCloudMediaPlayer
 */
+ (instancetype)ucloudMediaPlayer;

/**
 *  配置播放view
 *
 *  @param url   播放url
 *  @param urltype 播放类型
 *  @param frame playerView视图大小,默认传入CGRectNull
 *  @param view  player
 *  @param block 初始化完成
 */
- (void)showMediaPlayer:(NSString *)url urltype:(UrlType)urltype frame:(CGRect)frame view:(UIView *)view completion:(UCloudMediaCompletionBlock)block;

/**
 *  配置播放view
 *
 *  @param view  父view
 *  @param block 回掉清晰度信息
 */
- (void)showInview:(UIView *)view definition:(void(^)(NSInteger defaultNum, NSArray *data))block;

/**
 *  切换解码方式
 *
 *  @param decode 切换后的解码方式
 */
- (void)selectDecodeMthod:(DecodeMthod)decode;

/**
 *  切换清晰度
 *
 *  @param definition 切换后的清晰度
 */
- (void)selectDefinition:(Definition)definition;

/**
 *  刷新视图
 */
- (void)refreshView;

UCloudPlayback.h

- (void)prepareToPlay;

- (void)play;

- (void)pause;

- (void)stop;

- (BOOL)isPlaying;

- (void)shutdown;

- (void)setPauseInBackground:(BOOL)pause;

5.2.2 枚举

typedef NS_ENUM(NSInteger, DecodeMthod)
{
    DecodeMthodSoft,//软解
    DecodeMthodHard,//硬解
};

typedef NS_ENUM(NSInteger, Definition)
{
    Definition_fhd,   //@"蓝光"
    Definition_shd,   //@"超清"
    Definition_hd,    //@"高清"
    Definition_sd,    //@"标清"
};

typedef NS_ENUM(NSInteger, ErrorNum)
{
    ErrorNumShowViewIsNull = 1000,
    ErrorNumUrlIsNull,
    ErrorNumSaveShotError,
    ErrorNumUrlIsWrong,
    ErrorNumdrm,
    
    ErrorNumCgiLostPars = 40021,
    ErrorNumCgiRequest = 40022,
    ErrorNumCgiAuthFail = 40023,
    ErrorNumCgiMovieCannotFound = 40024,//不会构建videoview
    ErrorNumCgiDomainError = 40025,
    ErrorNumCgiServerError = 40026,
    ErrorNumCgiTimeOut = 40027,
};

typedef NS_ENUM(NSInteger, UrlType)
{
    UrlTypeAuto   = 0,//自动,程序会根据相关规则为你选择播放类型,如果是http-flv直播,请必须设置为UrlTypeLive,hls点播必须设置为UrlTypeHttp
    UrlTypeLocal  = 1,//本地视频
    UrlTypeHttp   = 2,//网络视频(非直播)
    UrlTypeLive   = 3,//直播
};

// 播放错误时的子错误码
typedef NS_ENUM(NSInteger, SubErrorCode)
{
    ///默认错误
    SubErrorCodeDefault = 0,
    ///准备播放超时
    SubErrorCodePrepareTimeout = 6,
    ///获取音频或视频帧超时
    SubErrorCodeAVFrameTimeout = 7,
};

// 丢帧模式
typedef enum : NSUInteger {
    DropFrameModeOnlyAudio,
    DropFrameModeAll,
} DropFrameMode;

5.3 日志获取

  • 日志等级
状态枚举 描述
UVodLiveLogLevelOff off
UVodLiveLogLevelError error
UVodLiveLogLevelWarning warn
UVodLiveLogLevelInfo info
UVodLiveLogLevelDebug debug
UVodLiveLogLevelVerbose verbose
  • enableLogFile: 是否开启日志文件,默认开启
  • logFiles: 所有日志文件名
  • logsDirectory: 日志文件路径,默认Documents/Logs/UCloud/UMedia/
  • lastLogFilePath: 最近的日志文件路径
  • lastLogFileName: 最近的日志文件名
  • logFileSize: 每个日志文件的大小,每个日志文件如若达到该大小将会进行一次压缩保存,减少沙盒使用量,默认1M
  • logFilesMaxSize: 日志文件夹大小,超过会清理日志,默认20M