开发指南

更新时间: 2021/11/04 06:15:13

本文档主要介绍:

  • 播放过程中的暂停、快进、播放等操作
  • 换源、截图等操作
  • 播放过程中的显示模式、倍速、音量、静音等动态参数设置

播放过程控制

API介绍

  • 开始播放。
  • 暂停播放。
  • 拖动播放。执行完成后会收到NELivePlayerMoviePlayerSeekCompletedNotification通知。
  • 停止播放。

API原型

objc/**
 *	@brief	暂停播放
 *
 *  @discussion
 *  调用play方法继续播放。如果当前播放已经暂停,则调用该方法将无效果。\\\n
 *  此时播放器状态为: NELPMoviePlaybackStatePaused
 *
 *  @warning 该接口只针对点播地址有效。
 *
 *	@return	无
 */
- (void)pause;

objc/**
 *	@brief	设置当前播放时间点(用于seek操作)以及获取当前播放的时间点
 *
 *	@param 	currentPlaybackTime 	当前要播放的时间点(单位:秒)
 *
 *  @discussion
 *  需要在播放器发送NELivePlayerDidPreparedToPlayNotification通知后,才能调用该set方法设置到某一时间点播放,\\\n
 *  此时isPreparedToPlay的值为 YES
 *
 *	@return	get操作返回的是当前播放的时间点
 *
 *  @see isPreparedToPlay
 */
@property(nonatomic)  NSTimeInterval currentPlaybackTime;

示例

objc[self.liveplayer pause];

obc[self.liveplayer setCurrentPlaybackTime:30];

特殊说明

拖动播放时需要先通过duration获取视频时长,根据时长按照比例进行时间设置。

换源操作

API介绍

  • 播放过程中,实现常规视频之间的切换。
  • 播放过程中,各种视频之间的切换。

API原型

objc/**
 * @brief 播放过程中切换播放地址
 *
 * @param aUrl 待切换的播放地址
 *
 * @return >= 0 切换成功, < 0 切换失败
 */
- (int)switchContentUrl:(NSURL *)aUrl;
/**
 @brief 播放过程中切换播放地址(扩展)

 @param aUrl 待切换的播放地址
 @param config 播放地址相关的配置
 @return >= 0 切换成功, < 0 切换失败
 */
- (int)switchContentUrl:(NSURL *)aUrl config:(NELPUrlConfig *)config;
objc/**
 * @brief 加密视频的切换(即将废弃)
 *
 * @param aUrl 待切换的播放地址
 * @param transferToken 获取密钥的令牌
 * @param accid 视频云用户创建的其子用户id
 * @param appKey 开发者平台分配的AppKey
 * @param token 视频云用户子用户的token
 * @param complete 异步返回密钥检测结果
 *
 * @discussion 切换成功后直接播放,不需要调用prepareToPlay。
 *
 * @return ret 返回密钥检测的状态
 */
- (void)switchDecryptionUrl:(NSURL *)aUrl
              transferToken:(NSString *)transferToken
                      accid:(NSString *)accid
                     appKey:(NSString *)appKey
                      token:(NSString *)token
                   complete:(void(^)(NELPKeyCheckResult ret))complete;
objc/**
 * @brief 已知密钥的情况下可以调用该接口进行切换(即将废弃)
 *
 * @param key 密钥
 * @param complete 异步返回密钥检测结果
 *
 * @discussion 切换成功后直接播放,不需要调用prepareToPlay。
 * @return     ret 返回密钥检测的状态。
 */
- (void)switchDecryptionKeyUrl:(NSURL *)aUrl
                           key:(NSString *)key
                      complete:(void(^)(NELPKeyCheckResult ret))complete;

参数说明

参数 类型 说明
aUrl NSURL 切换的目标地址
config NSString 缓冲和解密配置

示例

objc   NELPUrlConfig *urlConfig = [[NELPUrlConfig alloc] init];
        
   //配置缓存(非必须)
   urlConfig.cacheConfig = [[NELPUrlCacheConfig alloc] init];
   urlConfig.cacheConfig.isCache = YES;
   urlConfig.cacheConfig.cacheRootPath = nil;
        
    //配置解密(非必须)
    NSString *transferToken = @"test";
    NSString *accid = @"test";
    NSString *appKey = @"test";
    NSString *token = @"test";
    urlConfig.decryptionConfig = [NELPUrlDecryptionConfig configWithTransferToken:transferToken
                                                                            accid:accid
                                                                           appKey:appKey
                                                                            token:token];
    //切换
    [_player switchContentUrl:url config:urlConfig];

换源后保留的参数

  • 针对用户已经设置过的参数,换源操作会对部分参数进行保留,详见下表:
参数 说明 是否保留
bufferStrategy 缓冲策略 保留
bufferSize 缓冲区大小 保留
HardwareDecoder 软硬件编码 保留
ShouldAutoplay 是否自动播放 保留
Mute 静音 保留
Mirror 镜像显示 保留
Volume 音量 保留
LoopCount 循环次数 保留
AccurateSeek 精确seek开关 保留
PlaybackSpeed 播放速度 保留
PlaybackTimeout 拉流超时时间 保留
OpenReceiveSyncData 是否接收同步透传的信息 保留
RetryConfig 自动重试配置 保留
SelectedAudioTrack 选择的音轨 保留
yuvCallback YUV回调 保留
pcmConfig PCM配置 保留
pcmCallback PCM回调 保留
subtitleCallback 字幕回调 保留

特殊说明

  • switchContentUrl:只能进行普通源之间切换
  • switchContentUrl:config: 可以实现普通源和加密源之间的互切(普通-普通,普通-加密,加密-加密)
  • 调用成功之后不需要调用prepareToPlay接口,切换成功之后会收到NELivePlayerDidPreparedToPlayNotification通知,失败会收到NELivePlayerPlaybackFinishedNotification通知。
  • 为安全起见,外部调用请尽量在主线程调用

截图操作

API介绍

同步接口,返回当前播放时间点的视频图像,截图结果以 UIImage 格式返回,开发者可根据自己的需求保存成 jpg 格式或 png 格式,并保存到指定位置,demo 默认以 jpg 格式保存在相册中。

API原型

objc/**
 *	@brief	截图
 *
 *  @discussion
 *  调用prepareToPlay方法,播放器发出NELivePlayerDidPreparedToPlayNotification通知后,才能调用该方法。
 *
 *	@return	截图结果,以UIImage格式保存
 */
- (UIImage *)getSnapshot;

参数说明

示例

后台操作参数

API介绍

  • 动态参数,设置后台是否需要继续播放视频。

API原型

objc/**
 *	@brief	设置播放器切入后台后的播放状态
 *
 *  @discussion
 *  若设置后台暂停,则在切入后台后播放器处于暂停状态,回到前台需要手动播放\\\n
 *  若设置后台继续播放,则在切入后台后音频继续播放,回到前台后音视频正常播放\\\n
 *
 *  注意:仅播放点播流时支持后台暂停;对于直播流,若在切入后台时不需要继续播放,则需要在切入后台的过程中将播放器关闭并释放相关资源,切回前台再重新开始播放。
 *
 *	@param 	pause 	YES:后台暂停 NO:继续播放
 *
 *	@return	无
 */
- (void)setPauseInBackground:(BOOL)pause;

参数介绍

参数 类型 说明
pause BOOL 设置为NO: 在进行前后台切换时,sdk内部不做处理。
设置为YES:为在进入后台时sdk内部停止播放,回到前台后恢复播放。具体内部逻辑如下:
        直播:进入后台停止拉流,保留当前帧画面在屏幕上。回到前台后,重新拉流。
        点播:进入后台暂停,回到前台后继续播放。
默认为:NO

示例

objc[self.liveplayer setPauseInBackground:YES];

操作相关的动态参数

API介绍

播放过程中相关的动态参数设置。

  • 静音。
  • 音量。
  • 倍速。仅针对点播有效。
  • 显示模式。

API原型

objc/**
 *	@brief	静音功能
 *
 *	@param 	isMute 	YES:开启静音 NO:关闭静音
 *
 *	@return	无
 */
- (void)setMute: (BOOL)isMute;
objc/**
 * @brief 设置播放音量
 *
 * @param volume  音量大小(范围 0.0 ~ 1.0,0.0为最小,1.0为最大)
 *
 * @return	无
 */
- (void)setVolume:(float)volume;
objc/**
 * @brief	设置播放速度,仅适用于点播
 *
 * @param	speed 	播放速度(范围 0.5 ~ 0)
 *
 * @return	无
 */
@property (nonatomic) float playbackSpeed;
objc/**
 *	@brief	设置显示模式.
 *
 *  @param  aScalingMode 显示模式.
 *
 *  @discussion 共有以下4种显示模式,详见 NELPMovieScalingMode \\\n
 *  NELPMovieScalingModeNone,       //!< 无缩放  \\\n
 *  NELPMovieScalingModeAspectFit,  //!< 等比例缩放,某一边会有黑边填充  \\\n
 *  NELPMovieScalingModeAspectFill, //!< 等比例缩放,某一边可能会被裁减  \\\n
 *  NELPMovieScalingModeFill        //!< 全屏显示,画面宽高比可能与视频原始宽高比不一致
 *
 *	@return	无.
 */
- (void)setScalingMode: (NELPMovieScalingMode) aScalingMode;

参数介绍

参数 类型 说明
isMute BOOL 默认为NO。YES:静音 NO:正常
volume float 音量大小(范围 0.0 ~ 1.0,0.0为最小,1.0为最大)
playbackSpeed float 播放速度(范围 0.5 ~ 0)
aScalingMode NELPMovieScalingMode 显示模式

示例

objc//设置静音
[self.liveplayer setMute:NO];

//设置音量
[self.liveplayer setVolume:1.0];

//设置播放速度
[self.liveplayer setPlaybackSpeed:1.0];

//设置画面显示模式
[self.liveplayer setScalingMode:NELPMovieScalingModeNone]; 
此文档是否对你有帮助?
有帮助
去反馈
  • 播放过程控制
  • API介绍
  • API原型
  • 示例
  • 特殊说明
  • 换源操作
  • API介绍
  • API原型
  • 参数说明
  • 示例
  • 换源后保留的参数
  • 特殊说明
  • 截图操作
  • API介绍
  • API原型
  • 参数说明
  • 示例
  • 后台操作参数
  • API介绍
  • API原型
  • 参数介绍
  • 示例
  • 操作相关的动态参数
  • API介绍
  • API原型
  • 参数介绍
  • 示例