更新时间:2021-01-27 16:09:00
网宿提供IOS端播放器SDK,用于嵌入到苹果手机APP、iPad app 应用中,实现流媒体直播、点播播放。
请联系网宿技术支持申请。
+ (CNC_MediaPlayer_ret_Code)regist_app:(NSString *_Nonnull)app_id auth_key:(NSString *_Nonnull)auth_key;
也可以采用异步方式完成:
+ (void)async_regist_app:(NSString *_Nonnull)app_id auth_key:(NSString *_Nonnull)auth_key;
理论上一个自然日内只会发起一次网络鉴权(可能较耗时),为避免在 SDK 内部发起网络 鉴权请求,建议在 app 启动时调用。
self.player = [[CNCMediaPlayerController alloc] initWithContentURL:self.URL option:option];
[self.viewFullScreen addSubview:self.player.view];
[self.player prepareToPlay];
在初始化完成后,可根据需要对播放器进行配置,否则 SDK 将按照默认配置执行。
//debug 模式下可选 debug,若日志太多干扰,可选 warn [self.player setLogLevel:CNC_MediaPlayer_Loglevel_Debug]; //设置直播或者点播
[self.player setPlayMode:self.setting.isLive ? CNC_MEDIA_PLAYER_MODE_LIVE : CNC_MEDIA_PLAYER_MODE_VOD];
//设置是否自动播放
[self.player setShouldAutoPlay:self.setting.isAutoPlay]; //设置解码方式:(软解、硬解)
[self.player setVideoDecoderMode:self.setting.isHardware ?
CNC_VIDEO_DECODER_MODE_HARDWARE : CNC_VIDEO_DECODER_MODE_SOFTWARE]; //设置延时追赶(直播场景下使用,如果在点播使用会导致缓存不断被清除) [self.player setShouldAutoClearCache:self.setting.isAutoClearCache]; //设置是否后台播放
[self.player setAbleVideoPlayingInBackground:self.setting.isPlayBackground];
//设置是否进行后台视频解码,不解码可以节约设备资源,节省电量
[self.player setDisableVideoDecodeInBackground:self.setting.isDisableDecodeBackground];
//设置快启,加快首屏
[self.player accelerateOpen:self.setting.isAccelerateOpen]; //设置是否兼容其他 app 的音频,开启时其他 app 的音频不会中断播放器音频,否则
其他 app 的音频播放会中断播放器的播放
[self.player setMixOtherPlayer:self.setting.isMixOtherPlayer]; //设置缓冲最小时长,卡顿时需加载到这里设置的时长才会恢复播放状态 [self.player setMinBufferTime:self.setting.minBufferTime]; //设置延时追赶时间,缓存时长超过此阈值时,进行追赶
[self.player setMaxCacheTime:self.setting.maxCacheTime]; //设置低延时模式,延时追赶采用变速播放进行,使追赶更加平滑,点播不生效 [self.player setShouldLowLatencyMode:self.setting.isLowLatencyMode]; //设置 HLS 码率自适应
[self.player setHLSAdaptation:self.setting.isHLSAdaptation];
//设置 HLS 码率自适应的默认播放码率
[self.player setDefaultHLSBitrate:self.setting.HLSDefaultBitrate];
//设置解码前缓冲队列大小,默认 15MB,设置值较大时则加载更多但影响内存占用 [self.player setMaxBufferSize:self.setting.maxBufferSize]; //设置缩放模式,参见 CncMpVideoScalingMode
[self.player setScalingMode:CNC_MP_VIDEO_SCALE_MODE_ASPECTFIT];
/*
设置是否开启精准 seek
精准 seek 会在触发 seek 时找到相应位置的关键帧后,
快速解码到 seek 位置,不会产生找关键帧而导致 seek 后位置左右跳动
*/
[self.player setEnableAccurateSeek:self.setting.isAccurateSeek]; //设置循环播放次数
[self.player setLoop:self.setting.loopCount];
//设置 HLS 解密参数
[_player openHLSEncryption:self.setting.isOpenHLSEncryption
withVideoID:self.setting.hlsDecryptionVideoId]; );
详见随 SDK 一起提供的使用说明文档和 API 接口文档。