Android

更新日志

简介

ValleyRen Camera Streamer SDK 是一个适用于Android平台的直播推流 SDK,可以帮助开发者在应用中实现音视频采集,处理,录制,及推流功能。

声明

本sdk采用授权发布机制,请联系商务获取授权,未授权sdk会有相关限制。

兼容性

1.Android 4.3 (API 18)及以上
2.支持 armv7a,armv8 处理器
3.ValleyRenCameraStreamer.aar  

功能

导入SDK

1.SDK 为打包的ValleyRenCameraStreamer.aar的文件,请在使用时添加aar到APP工程引用库目录中,详细参考Demo 工程
2.本SDK需要在AndroidManifest.xml添加访问相机和麦克风权限

导入头文件

import net.valley.streamer.IValleyRenCameraStreamer;
import net.valley.streamer.ValleyRenCameraStreamer;
imp`ort` net.valley.streamer.ValleyRenCamerConfig;

初始化ValleyRenStreamerConfig类

推流需要设置音视频等相关配置参数,首先需要初始化配置参数

ValleyRenStreamerConfig  config =new ValleyRenStreamerConfig(); 
config.videoWidth = 540;
config.videoWidth = 960;
config.videoBitRate = 800*1024;
config.videoFPS = 24;
config.videoMaxKeyFrameInterval = 48;
config.audioChannel = 2;
config.audioSampleRate = 44100;
config.audioBitRate = 128000;

初始化ValleyRenCameraStreamer

IValleyRenCameraStreamer magicEngine = ValleyRenCameraStreamer.create();
magicEngine.init(config,view);

设置事件,错误回调侦听

APP 通过回调侦听推流事件和出错信息

magicEngine.setOnErrorListener(this);
magicEngine.setOnEventListener(this);

实现以下回调

void OnEvent:(IValleyRenCameraStreamer streamer, IValleyRenCameraStreamer.ValleyStreamerEvent  
event ,int what){
switch(event){
}
}

void OnError:(IValleyRenCameraStreamer streamer, IValleyRenCameraStreamer.ValleyStreamerError
error ,int what){
switch(error){
}
}

配置自适应码率调整

本SDK支持推流过程网络带宽抖动时,自动调整推流码率大小以达到流畅推流的目的,用户可以通过以下属性决定是否开启自适应码率功能,默认开启

magicEngine.setAutoAdjustBitrate(false); //关闭自适应码率

配置重连机制

本SDK支持推流过程中网络断开后的重连机制,用户可以通过以下API配置重连次数和间隔

magicEngine.setReconnectOption(5,100); 重连尝试次数5,重连间隔100ms

配置日志

可选项,SDK定义了以下几种日志等级,用户可以设置想要输出的日志级别

LOG_INFO
LOG_DEBUG
LOG_WARNNING
LOG_ERROR
LOG_NONE

magicEngine.setDebugLevel(LOG_DEBUG); //设置debug级别日志

预览

magicEngine.startPreview();

开始推流

将推流地址参数String url传递给以下API,开启推流

magicEngine.startStreaming(url);

结束推流

magicEngine.stopStreaming();

开始录制

将本地录制地址参数String url传递给以下API,开启录制,注意录制功能一定是要在推流中才能进行,如果用户没有开启推流或者推流失败,此时录制会报错

magicEngine.startRecording(url);

停止录制

magicEngine.stopRecording();

相机切换

前后摄像头切换,默认开启前置摄像头

magicEngine.switchCamera();

相机亮度控制

摄像头采集亮度调节取值0.0-1.0,默认1.0

magicEngine.setCameraBrightLevel(1.0);

相机手电筒控制

手电筒默认关闭,如果没有手电筒,此功能无效

magicEngine.setCameraToggleTorch(true); //开启手电筒

相机聚焦控制

相机默认为自动对焦模式,用户可以手动设置对焦点

magicEngine.setCameraFocusing(10.0, 10.0);

美颜设置

SDK有以下几种美颜等级控制

BEAUTY_NONE
BEAUTY_LEVEL_1
BEAUTY_LEVEL_2
BEAUTY_LEVEL_3
magicEngine.setBeauty (BEAUTY_LEVEL_1);

滤镜设置

SDK有以下滤镜,用户可以设置滤镜效果及开启关闭

FILTER_NONE
FILTER_SUNRISE
FILTER_SUNSET
FILTER_WHITECAT
FILTER_BLACKCAT

magicEngine.setBeauty (FILTER_SUNRISE);

水印设置

水印设置通过水印config类来配置水印的参数,通过此参数用户可以控制水印开关,坐标以及大小

ValleyRenWatermarkConfig config = =new ValleyRenWatermarkConfig (); 
config.enable = true;
config.x = 10.0;
config.y = 10.;
config.w = 300;
config.w = 100;
config.url = url;
magicEngine.setWatermark (config);

缩放

用户通过设置缩放比例达到显示图像的比例控制

magicEngine.setZoom (1.0);

镜像

通过镜像功能控制图像左右翻转

magicEngine.Mirror (true);

静音

SDK支持静音推流

magicEngine.Mute (true);

推流事件

推流定义以下事件和警告信息

EVENT_PUSH_CONNECTING,
EVENT_PUSH_CONNECT_SUCC,
EVENT_PUSH_DISCONNECT,
EVENT_RECORD_BEGIN,
EVENT_RECORD_END,
WARNNING_NETWORK_WEAK,
WARNNING_RECONNECTING,
WARNNING_HW_ACCELERATION_FAIL

错误通知

推流定义以下错误信息

ERROR_OPEN_CAMERA_FAIL
ERROR_OPEN_MIC_FAIL
ERROR_VIDEO_ENCODE_FAIL
ERROR_AUDIO_ENCODE_FAIL
ERROR_PUSH_CONNECT_FAIL
ERROR_RECORD_FAIL
ERROR_UNSUPPORTED_FORMAT

接口说明

创建

IValleyRenCameraStreamer create()

初始化

int	init(ValleyRenStreamerConfig config, ValleyMagicCameraView view)

事件回调

interface	IValleyRenCameraStreamerOnEventListener{
void OnEvent:(IValleyRenCameraStreamer streamer, IValleyRenCameraStreamer.ValleyStreamerEvent
event ,int what)
}

错误回调

interface	IValleyRenCameraStreamerOnErrorListener{
void OnError:(IValleyRenCameraStreamer streamer, IValleyRenCameraStreamer.ValleyStreamerError
error ,int what)
}

重连设置

int	setReconnectOption:(int count Interval, int interval)

动态码率控制

int	setAutoAdjustBitrate(boolean enable)

设置log等级

void	setDebugLevel(int level)

控制相关接口

开启预览

int	startPreview()

关闭预览

int	stopPreview()

开启推流

int	startStreaming:(String url)

关闭推流

int stopStreaming()

开启录制

int	startRecording(String url)

关闭录制

int	stopRecording()

切换摄像头位置

int	switchCamera()

设置水印

int	setWatermark(ValleyRenWatermarkConfig watermark)

设置相机聚焦

int	setCameraFocusing(float x, float y)

美颜

void	setBeauty(ValleyCameraBeauty info)

滤镜

void	setFilter(ValleyCameraFilter filter)