功能详细说明

推流参数设置

  • 视频分辨率
    目前支持(360x640)、(540x960)、(720x1280)三种分辨率,分别对应的枚举值为:

    • EVStreamFrameSize_360x640
    • EVStreamFrameSize_540x960
    • EVStreamFrameSize_720x1280 默认的枚举值为 EVStreamFrameSize_default 分辨率为 (360x640),即 EVStreamFrameSize_360x640
  • 视频码率 SDK 推流器的默认视频码率为 700 kbps,默认最大视频码率 800 kbps,最小视频码率 200 kbps。SDK 支持根据网络动态调整视频码率,当网络较差时调低码率保证视频的流畅性,网络状态变好时提高视频码率以提供更清晰的视频质量。

  • 音频码率 音频码率由 EVStreamerAudioBitrate 枚举管理,目前支持 32、48、64、128 (单位:kbps),分别对应如下枚举值:

    • EVStreamerAudioBitrate_32
    • EVStreamerAudioBitrate_48
    • EVStreamerAudioBitrate_64
    • EVStreamerAudioBitrate_128
      默认为 48 kbps,即 EVStreamerAudioBitrate_48

网络错误码

当进行 - (void)livePrepareComplete:(EVStreamerCompleteBlock)complete;- (void)liveStartComplete:(EVStreamerCompleteBlock)complete; 操作时,会在回调 block 中回调错误码,错误码列表如下:

名称 数值 含义
EVStreamerResponse_Okay 0 无错误
EVStreamerResponse_error_sdkNotInitedOrInitedFailure 1 没有进行sdk初始化,或者sdk初始化失败
EVStreamerResponse_error_sdkLiveRequestError 2 直播请求失败
EVStreamerResponse_error_sdkNotLivePrepareOrPrepareFailure 3 没有调用直播准备接口,或调用直播准备失败
EVStreamerResponse_error_sdkNoLid 4 没有设置 lid, lid 一定要在 liveStart 之前设置
EVStreamerResponse_error_sdkNoURI 5 没有设置URI, URI 一定要在 liveStart 之前设置
EVStreamerResponse_error_sdkInitHardware 6 初始化硬件错误

视频编码器类型

typedef NS_ENUM(NSUInteger, EVVideoCodec) {
    /// 视频编码器 - h264 软件编码器
    EVVideoCodec_X264 = 0,
    /// 视频编码器 - KSY265 软件编码器
    EVVideoCodec_QY265,
    /// 视频编码器 - iOS VT264硬件编码器 (iOS 8.0以上支持)
    EVVideoCodec_VT264,
    /// 视频编码器 - 由SDK自动选择( VT264 > X264)
    EVVideoCodec_AUTO = 100,
    /// 视频编码器 - gif
    EVVideoCodec_GIF,
};

直播场景

typedef NS_ENUM(NSUInteger, EVLiveScene) {
    /// 默认通用场景(不确定场景时使用)
    EVLiveScene_Default = 0,
    /// 秀场场景, 主播上半身为主
    EVLiveScene_Showself,
    /// 游戏场景
    EVLiveScene_Game,
};

音效类型

typedef NS_ENUM(NSUInteger, EVAudioEffectType){
    /// 初始化时状态为空闲
    EVAudioEffectType_NONE = 0,
    /// 大叔
    EVAudioEffectType_MALE,
    /// 萝莉
    EVAudioEffectType_FEMALE,
    /// 宏大
    EVAudioEffectType_HEROIC,
    /// 机器人
    EVAudioEffectType_ROBOT,
};

横屏直播

推流器支持横屏直播,采用当前主流的 UIInterfaceOrientationLandscapeRight 屏幕方向,SDK 使用者需要先将屏幕方向设置为 UIInterfaceOrientationLandscapeRight,然后设置 useHorizonMode 属性为 YES,则可开启横屏直播。

背景音乐播放

推流器支持背景音乐播放功能,但需要将音乐文件下载到本地,传入本地文件路径进行播放。

播放背景音乐:

[self.streamer BGMPlayWithPath:musicePath];

暂停背景音乐:

[self.streamer BGMPause];

调节背景音乐在本地播放的音量:

self.streamer.BGMVolume

恢复播放背景音乐:

[self.streamer BGMResume];

背景音乐支持混音,如开始播放音乐后,通过 BGMVolume 属性将本地播放的音量调到 0,观看端仍然可以听到主播和音乐的声音。默认为混音状态,如果未插入耳机外放音乐时,观看端有声音重叠的感觉,可以通过关闭混音解决,方法如下:

- (void)BGMTrackAndPlayCapturedAudioSwitch:(BOOL)YorN;

注:未插入耳机时,开启耳返会有很大噪音

美颜

推流器支持美颜功能,主播可以自己决定是否开启美颜,并可以在开启美颜后设置美颜级别。

美颜开关:

- (void)enableFaceBeauty:(BOOL)enabled;

设置美颜级别(区间为[1, 5]):

- (void)configBeautyLevel:(NSInteger)level;

默认美颜级别为 3.

主辅连麦

直播端SDK支持连麦功能,在直播过程中特定观众可以发起连麦请求,主播接受连麦请求后,连麦观众和主播之间进行实时互动。目前版本仅支持1对1连麦。

重要提示:要测试或使用连麦功能,需要向易视云商务人员申请连麦id,否则点击界面上的连麦按钮Demo会提示“请先设置agoraAppid”。

主播端已开始直播,推流器对象已初始化完毕。

加入频道 evdemo02 进行连麦:

[self.streamer joinChannel:@"evdemo02"];

连麦状态会通过 streamer 的代理回调给代理类:

- (void)EVStreamerUpdateVideoChatState:(EVVideoChatState)chatState {
    // 当前连麦状态
}

通过设置属性切换主辅视频窗口:

@property (nonatomic, assign) BOOL selfInFront;

可以通过设置如下属性修改小窗口的位置、大小:

@property (nonatomic, readwrite) CGRect winRect;

离开当前连麦频道:

[self.streamer leaveChannel];

results matching ""

    No results matching ""