public class LVRTCEngine
extends java.lang.Object
implements com.linkv.rtc.internal.audiomixing.IAudioDecoder, com.linkv.rtc.internal.audiomixing.IAudioDecoderCallback
Modifier and Type | Method and Description |
---|---|
void |
addDisplayView(Context context,
LVDisplayView view)
|
int |
adjustAudioMixingVolume(int volume)
调节音乐文件的播放音量。请在开启混音后调用该方法。
开启混音详见
startAudioMixing(String, boolean, int) |
void |
audioMixerCurrentPlayingTime(int time_ms)
当前混音播发进度
|
void |
audioMixerPlayerDidFinished()
混音结束回掉
|
void |
auth(java.lang.String appID,
java.lang.String appSign,
java.lang.String userId,
LVResultCallback1<java.lang.Integer> callback)
SDK 鉴权
|
static java.lang.String |
buildVersion()
获取 SDK 编译版本号
|
void |
enableExternalAudioInput(boolean enable)
是否开启外部音频数据输入,请在
loginRoom(String, String, boolean, boolean, LVResultCallback2) 之前设置 |
void |
enableMic(boolean enable)
设置推流静音
|
void |
enableSoftwareAec(boolean enable)
Deprecated.
|
void |
enableSoftwareNS(boolean enable)
Deprecated.
|
void |
enableSpeakerphone(boolean enable)
开启扬声器
|
void |
enableVideoAutoRotation(boolean enable)
设置是否允许 SDK 自动根据设备的方向调整视频的输出方向,默认是true
|
long |
getAudioMixingCurrentPosition()
获取音乐文件的播放进度。单位为毫秒。请在开启混音后调用该方法。
开启混音详见
startAudioMixing(String, boolean, int) |
long |
getAudioMixingTotalLength()
获取当前伴奏文件总时长,单位毫秒。请在开启混音后调用该方法。
开启混音详见
startAudioMixing(String, boolean, int) |
int |
getAudioMixingVolume()
获取当前伴奏音量,请在开启混音后调用该方法。
开启混音详见
startAudioMixing(String, boolean, int) |
LVAVConfig |
getAVConfig()
获取Video采集/编码/推流相关参数设置
|
LVExternalAudioConfig |
getExternalAudioConfig()
获取外部输入音频数据的参数配置
|
static LVRTCEngine |
getInstance(Context context)
获取 SDK 引擎单例
|
LVBeautyManager |
getLVBeautyManager()
获取美颜参数管理
|
int |
getSoundLevelByUserId(java.lang.String userId)
获取用户音量大小
|
void |
initSDK()
SDK 初始化
|
boolean |
isSpeakerphoneOn()
判断扬声器是否开启
|
boolean |
isTextureInput() |
boolean |
linkRoom(java.lang.String roomId)
跨房间连麦
|
boolean |
linkRoom(java.lang.String roomId,
java.lang.String linkUserId)
跨房间连麦
|
void |
loginRoom(java.lang.String roomId,
java.lang.String userId,
boolean isHost,
boolean isAudioOnly,
LVResultCallback2<java.lang.Integer,java.util.ArrayList<LVUser>> callback)
加入房间
|
void |
logoutRoom(LVResultCallback1<java.lang.Integer> callback)
登出房间
|
void |
mixStream(LVMixStreamConfig config)
开始服务端混流
|
void |
muteLocalVideo(boolean mute)
暂停/恢复推送本地的视频数据
|
int |
pauseAudioMixing()
暂停播放音乐文件及混音。请在开启混音后调用该方法。
开启混音详见
startAudioMixing(String, boolean, int) |
void |
removeDisplayView(LVDisplayView view)
|
void |
removeDisplayView(java.lang.String uid)
根据uid移除预览视图,和
removeDisplayView(com.linkv.rtc.render.LVDisplayView) 配对使用 |
int |
resumeAudioMixing()
恢复播放音乐文件及混音。请在开启混音后调用该方法。
开启混音详见
startAudioMixing(String, boolean, int) |
int |
sendAudioFrame(byte[] data)
外部输入音频数据
|
void |
sendVideoFrame(java.nio.ByteBuffer data,
int width,
int height,
int rotate,
int format,
long timestamp,
java.lang.String sei)
外部输入byte格式视频数据,目前只支持I420格式
|
void |
sendVideoFrame(int width,
int height,
int textureId,
float[] transformMatrix,
long timestamp,
java.lang.String sei)
外部输入texture格式视频数据
|
void |
setAecMode(LVConstants.Audio3AMode mode)
设置AEC开关,请在
startPublishing() 前调用 |
void |
setAudioMixingMode(LVConstants.LVAudioMixingMode mode)
在伴奏过程中动态修改伴奏模式
|
int |
setAudioMixingPosition(int pos)
设置音乐文件的播放位置。请在开启混音后调用该方法。
开启混音详见
startAudioMixing(String, boolean, int) |
void |
setAudioModel(int audio_model)
设置声音模式
|
void |
setAudioRecordFlag(LVConstants.AudioRecordType... types)
设置音频录制模式,可同时设置多种录制模式,录制结果会通过
LVRTCCallback.onAudioMixStream(java.nio.ByteBuffer, int, int, int, int, com.linkv.rtc.LVConstants.AudioRecordType) 回调 |
void |
setAVConfig(LVAVConfig config)
设置Video采集/编码/推流相关参数
|
static void |
setDebugServerIp(java.lang.String debugServerIp)
设置测试url
|
void |
setExternalAudioConfig(LVExternalAudioConfig config)
设置外部输入音频数据的参数配置,请在
loginRoom(String, String, boolean, boolean, LVResultCallback2) 之前设置 |
void |
setISOCountryCode(java.lang.String iso_cc)
设置国家码
|
void |
setLiveRoomCallback(LVRTCCallback callback)
设置引擎回调
|
void |
setLocalVideoRotation(LVConstants.LVVideoRotation rotation)
设置手动管理本地视图方向
逆时针旋转
|
static void |
setLogLevel(int logLevel)
设置log级别
|
void |
setNsMode(LVConstants.Audio3AMode mode)
设置NS开关,请在
startPublishing() 前调用 |
void |
setOutputVideoRotation(LVConstants.LVVideoRotation rotation)
设置手动管理视频输出方向
逆时针旋转
|
void |
setPlayQualityMonitorCycle(int seconds)
设置拉流时数据统计信息回调的频率,可通过
LVRTCCallback.onPlayQualityUpdate(LVVideoStatistic, String) 查看统计信息 |
void |
setPlayVolume(int volume)
控制所有远端音频流音量, 加入房间成功后调用
|
void |
setPlayVolume(java.lang.String userId,
int volume)
控制远端音频流音量, 加入房间成功后调用
|
void |
setPublishQualityMonitorCycle(int seconds)
设置推流时数据统计信息回调的频率,可通过
LVRTCCallback.onPublishQualityUpdate(LVVideoStatistic) 查看统计信息 |
static void |
setUseInternationalEnv(boolean internationalEnv)
Deprecated.
|
static void |
setUseTestEnv(boolean useTestEnv)
设置使用线上或测试服务器环境
|
void |
setVideoDecoderMode(int softwareDecoder)
是否启用软件解码器
|
void |
setVideoEncoderMode(int isSoftwareCodec)
是否启用软件编码器
|
int |
startAudioMixing(java.lang.String filePath,
boolean replace,
int loop)
Deprecated.
|
int |
startAudioMixing(java.lang.String filePath,
LVConstants.LVAudioMixingMode mode,
int loop)
开始播放音乐文件及混音。
|
int |
startAudioMixing(Uri uri,
boolean replace,
int loop)
Deprecated.
|
int |
startAudioMixing(Uri uri,
LVConstants.LVAudioMixingMode mode,
int loop)
开始播放音乐文件及混音。
|
void |
startCapture()
开始采集视频,调用前请先调用
addDisplayView(Context, com.linkv.rtc.render.LVDisplayView) 添加本地预览视图 |
boolean |
startPlayingStream(java.lang.String userId)
开始播放一路音视频流
|
void |
startPublishing()
开始推流
|
void |
startSoundLevelMonitor(int timeInMs)
开启音量监听回调,开启后会收到
LVRTCCallback.onAudioVolumeUpdate(ArrayList) |
int |
stopAudioMixing()
停止播放音乐文件及混音。请在开启混音后调用该方法。
开启混音详见
startAudioMixing(String, boolean, int) |
void |
stopCapture()
停止采集视频
|
void |
stopMixStream()
停止混流
|
boolean |
stopPlayingStream(java.lang.String userId)
停止播放一路音视频流
|
void |
stopPublishing()
停止推流
|
void |
stopSoundLevelMonitor()
停止音量监听回调
|
void |
switchCamera(LVConstants.LVRTCCameraPosition position)
切换摄像头
|
boolean |
unInitSDK()
SDK 资源释放
|
boolean |
unlinkRoom(java.lang.String roomId)
取消跨房间连麦功能
|
boolean |
unlinkRoom(java.lang.String roomId,
java.lang.String unlinkUserId)
取消跨房间连麦功能
|
static java.lang.String |
versionName()
获取 SDK 主版本名称
|
static int |
versionNumber()
获取 SDK 主版本号
|
public static LVRTCEngine getInstance(Context context)
public static int versionNumber()
public static java.lang.String versionName()
public static java.lang.String buildVersion()
public static void setUseTestEnv(boolean useTestEnv)
useTestEnv
- true:线上环境 false:测试环境@Deprecated public static void setUseInternationalEnv(boolean internationalEnv)
internationalEnv
- true:国外环境 false:国内环境public static void setDebugServerIp(java.lang.String debugServerIp)
debugServerIp
- 测试Ippublic static void setLogLevel(int logLevel)
logLevel
- 详见LVConstants.LogLevel
public void setLiveRoomCallback(LVRTCCallback callback)
callback
- public void initSDK()
public void auth(java.lang.String appID, java.lang.String appSign, java.lang.String userId, LVResultCallback1<java.lang.Integer> callback)
appID
- 向LiveMe申请的appIdappSign
- 向LiveMe申请的appSignuserId
- 用户uid,辅助设置,可以不传callback
- 鉴权结果回调public void loginRoom(java.lang.String roomId, java.lang.String userId, boolean isHost, boolean isAudioOnly, LVResultCallback2<java.lang.Integer,java.util.ArrayList<LVUser>> callback)
roomId
- 房间IduserId
- 用户IdisHost
- 是否是主持人isAudioOnly
- 是否以纯音频形式加入callback
- 加入房间结果回调public void logoutRoom(LVResultCallback1<java.lang.Integer> callback)
callback
- public boolean unInitSDK()
public void sendVideoFrame(java.nio.ByteBuffer data, int width, int height, int rotate, int format, long timestamp, java.lang.String sei)
data
- I420格式的byte数组width
- 采集数据宽height
- 采集数据高rotate
- 采集数据方向信息format
- 格式请参考LVConstants.VideoFrameType
,目前只支持I420格式timestamp
- 该帧frame时间戳,单位毫秒sei
- 该帧扩展信息public void sendVideoFrame(int width, int height, int textureId, float[] transformMatrix, long timestamp, java.lang.String sei)
width
- 采集数据宽height
- 采集数据高textureId
- texture idtransformMatrix
- 该texture对应的矩阵信息timestamp
- 该帧frame时间戳,单位毫秒sei
- 该帧扩展信息public void mixStream(LVMixStreamConfig config)
config
- 详见LVMixStreamConfig
public void stopMixStream()
public void setAVConfig(LVAVConfig config)
config
- 详见LVAVConfig
public LVAVConfig getAVConfig()
LVAVConfig
public void setAudioRecordFlag(LVConstants.AudioRecordType... types)
LVRTCCallback.onAudioMixStream(java.nio.ByteBuffer, int, int, int, int, com.linkv.rtc.LVConstants.AudioRecordType)
回调types
- 详见LVConstants.AudioRecordType
public void setPublishQualityMonitorCycle(int seconds)
LVRTCCallback.onPublishQualityUpdate(LVVideoStatistic)
查看统计信息seconds
- 回调时间间隔,单位秒public void setPlayQualityMonitorCycle(int seconds)
LVRTCCallback.onPlayQualityUpdate(LVVideoStatistic, String)
查看统计信息seconds
- 回调时间间隔,单位秒public void startSoundLevelMonitor(int timeInMs)
LVRTCCallback.onAudioVolumeUpdate(ArrayList)
timeInMs
- 回调时间间隔,单位毫秒public void stopSoundLevelMonitor()
public void setVideoEncoderMode(int isSoftwareCodec)
isSoftwareCodec
- 1:启用; 0:不起用; 默认不使用软件编码器public void setVideoDecoderMode(int softwareDecoder)
softwareDecoder
- 1:启用; 0:不起用; 默认使用软件解码器public void startPublishing()
public void stopPublishing()
public boolean startPlayingStream(java.lang.String userId)
userId
- 要播放的音视频流用户Idpublic boolean stopPlayingStream(java.lang.String userId)
userId
- 要停止播放的音视频流用户 IDpublic boolean linkRoom(java.lang.String roomId)
roomId
- 房间Idpublic boolean unlinkRoom(java.lang.String roomId)
roomId
- 房间Idpublic boolean linkRoom(java.lang.String roomId, java.lang.String linkUserId)
roomId
- 房间IdlinkUserId
- pk UserIdpublic boolean unlinkRoom(java.lang.String roomId, java.lang.String unlinkUserId)
roomId
- 房间IdunlinkUserId
- 取消 pk UserIdpublic void enableSpeakerphone(boolean enable)
enable
- true:开启 false:关闭public boolean isSpeakerphoneOn()
public void enableMic(boolean enable)
enable
- true:不静音 false:静音public void setAudioModel(int audio_model)
audio_model
- 0:音乐模式, 3:通话模式, -1:SDK自适应, 默认值为-1;public int getSoundLevelByUserId(java.lang.String userId)
userId
- 用户Idpublic void setISOCountryCode(java.lang.String iso_cc)
iso_cc
- 国家码public void enableExternalAudioInput(boolean enable)
loginRoom(String, String, boolean, boolean, LVResultCallback2)
之前设置enable
- true: 开启, false: 关闭public void setExternalAudioConfig(LVExternalAudioConfig config)
loginRoom(String, String, boolean, boolean, LVResultCallback2)
之前设置config
- LVExternalAudioConfig
public LVExternalAudioConfig getExternalAudioConfig()
LVExternalAudioConfig
public int sendAudioFrame(byte[] data)
data
- 音频数据public void setPlayVolume(java.lang.String userId, int volume)
userId
- 被控制的用户Idvolume
- 音量大小, [0,100], 100未原始音量大小public void setPlayVolume(int volume)
volume
- 音量大小, [0,100], 100未原始音量大小@Deprecated public int startAudioMixing(java.lang.String filePath, boolean replace, int loop)
startAudioMixing(String, LVConstants.LVAudioMixingMode, int)
代替
开始播放音乐文件及混音。
1. 如需调用该方法,请确保使用 Android 4.2 或以上设备,且 API Level ≥ 16 2. 请在加入房间后调用该方法
filePath
- 文件路径,如果路径以'/assets/'开始,则去assets/目录下找,否则去绝对路径下找replace
- true:只推动设置的本地音频文件,不传输麦克风收录的音频 false:音频文件内容将会和麦克风采集的音频流进行混音loop
- 指定音频文件循环播放的次数,正整数:循环的次数 -1:无限循环@Deprecated public int startAudioMixing(Uri uri, boolean replace, int loop)
startAudioMixing(Uri, LVConstants.LVAudioMixingMode, int)
代替
开始播放音乐文件及混音。
1. 如需调用该方法,请确保使用 Android 4.2 或以上设备,且 API Level ≥ 16 2. 请在加入房间后调用该方法
uri
- 文件路径replace
- true:只推动设置的本地音频文件,不传输麦克风收录的音频 false:音频文件内容将会和麦克风采集的音频流进行混音loop
- 指定音频文件循环播放的次数,正整数:循环的次数 -1:无限循环public int startAudioMixing(java.lang.String filePath, LVConstants.LVAudioMixingMode mode, int loop)
1. 如需调用该方法,请确保使用 Android 4.2 或以上设备,且 API Level ≥ 16 2. 请在加入房间后调用该方法
startAudioMixing
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
filePath
- 文件路径mode
- 指定伴奏模式,详见mode定义LVConstants.LVAudioMixingMode
loop
- 指定音频文件循环播放的次数,正整数:循环的次数 -1:无限循环public int startAudioMixing(Uri uri, LVConstants.LVAudioMixingMode mode, int loop)
1. 如需调用该方法,请确保使用 Android 4.2 或以上设备,且 API Level ≥ 16 2. 请在加入房间后调用该方法
startAudioMixing
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
uri
- 文件路径mode
- 指定伴奏模式,详见mode定义LVConstants.LVAudioMixingMode
loop
- 指定音频文件循环播放的次数,正整数:循环的次数 -1:无限循环public void setAudioMixingMode(LVConstants.LVAudioMixingMode mode)
setAudioMixingMode
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
mode
- 与startAudioMixing(java.lang.String, boolean, int)
中设置mode作用相同,详见mode定义LVConstants.LVAudioMixingMode
public int stopAudioMixing()
startAudioMixing(String, boolean, int)
stopAudioMixing
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
public int pauseAudioMixing()
startAudioMixing(String, boolean, int)
pauseAudioMixing
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
public int resumeAudioMixing()
startAudioMixing(String, boolean, int)
resumeAudioMixing
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
public int getAudioMixingVolume()
startAudioMixing(String, boolean, int)
getAudioMixingVolume
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
public int adjustAudioMixingVolume(int volume)
startAudioMixing(String, boolean, int)
adjustAudioMixingVolume
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
volume
- 音量:0~100public long getAudioMixingTotalLength()
startAudioMixing(String, boolean, int)
getAudioMixingTotalLength
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
public long getAudioMixingCurrentPosition()
startAudioMixing(String, boolean, int)
getAudioMixingCurrentPosition
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
public int setAudioMixingPosition(int pos)
startAudioMixing(String, boolean, int)
setAudioMixingPosition
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoder
pos
- 整数。进度条位置,单位为毫秒public void startCapture()
addDisplayView(Context, com.linkv.rtc.render.LVDisplayView)
添加本地预览视图public void stopCapture()
public void switchCamera(LVConstants.LVRTCCameraPosition position)
position
- 请参考LVConstants.LVRTCCameraPosition
public void addDisplayView(Context context, LVDisplayView view)
view
- LVDisplayView
public void removeDisplayView(LVDisplayView view)
view
- LVDisplayView
public void removeDisplayView(java.lang.String uid)
removeDisplayView(com.linkv.rtc.render.LVDisplayView)
配对使用uid
- 流Idpublic void muteLocalVideo(boolean mute)
mute
- true:暂停;false:恢复public void enableVideoAutoRotation(boolean enable)
enable
- true:开启 false:关闭public void setOutputVideoRotation(LVConstants.LVVideoRotation rotation)
rotation
- 必须是90的倍数public void setLocalVideoRotation(LVConstants.LVVideoRotation rotation)
rotation
- 必须是90的倍数public boolean isTextureInput()
public LVBeautyManager getLVBeautyManager()
@Deprecated public void enableSoftwareAec(boolean enable)
enable
- public void setAecMode(LVConstants.Audio3AMode mode)
startPublishing()
前调用mode
- 详见LVConstants.Audio3AMode
@Deprecated public void enableSoftwareNS(boolean enable)
enable
- public void setNsMode(LVConstants.Audio3AMode mode)
startPublishing()
前调用mode
- 详见LVConstants.Audio3AMode
public void audioMixerCurrentPlayingTime(int time_ms)
com.linkv.rtc.internal.audiomixing.IAudioDecoderCallback
audioMixerCurrentPlayingTime
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoderCallback
time_ms
- 当前播发进度,单位毫秒public void audioMixerPlayerDidFinished()
com.linkv.rtc.internal.audiomixing.IAudioDecoderCallback
audioMixerPlayerDidFinished
in interface com.linkv.rtc.internal.audiomixing.IAudioDecoderCallback