AliVCSDK 6.17.0
阿里云音视频SDK,为视频开发者提供一站式接入服务
 
Loading...
Searching...
No Matches
AlivcLivePushConfig.java
1package com.alivc.live.pusher;
2
3import static com.alivc.live.pusher.AlivcAudioSampleRateEnum.AUDIO_SAMPLE_RATE_48000;
4import static com.alivc.live.pusher.AlivcLivePushCameraTypeEnum.CAMERA_TYPE_FRONT;
5import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_MAX_DIFF_PTS;
6import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_MAX_TIMEOUT_COUNT;
7import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_AUDIO_ONLY;
8import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_AUTO_FOCUS;
9import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_FLASH;
10import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_FPS;
11import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_INT_AUDIO_RETRY_COUNT;
12import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_INT_DEFINITION;
13import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_INT_INIT_BITRATE;
14import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_INT_MIN_BITRATE;
15import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_INT_RETRY_INTERVAL;
16import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_INT_TARGET_BITRATE;
17import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_PREVIEW_MIRROR;
18import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_PUSH_MIRROR;
19import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_VIDEO_GOP;
20import static com.alivc.live.pusher.AlivcLivePushConstants.DEFAULT_VALUE_VIDEO_ONLY;
21
22import android.content.Intent;
23import android.graphics.Bitmap;
24import android.graphics.ImageFormat;
25import android.media.AudioFormat;
26import android.os.Build;
27
28import com.alivc.live.annotations.AlivcLiveAudioCodecType;
29import com.alivc.live.annotations.AlivcLiveCameraCaptureOutputPreference;
30import com.alivc.live.annotations.AlivcLiveMode;
31
32import java.io.Serializable;
33import java.util.ArrayList;
34import java.util.HashMap;
35
36
37
45@Visible
46public class AlivcLivePushConfig implements Serializable {
47 public static final String CONFIG = "AlivcLivePushConfig";
48
49 private AlivcLiveMode mLivePushMode = AlivcLiveMode.AlivcLiveBasicMode;
50
51 private AlivcResolutionEnum mResolution = DEFAULT_VALUE_INT_DEFINITION;
52 private int mTargetVideoBitrate = DEFAULT_VALUE_INT_TARGET_BITRATE;
53 private int mMinVideoBitrate = DEFAULT_VALUE_INT_MIN_BITRATE;
54 private int mInitialVideoBitrate = DEFAULT_VALUE_INT_INIT_BITRATE;
55 private AlivcFpsEnum mFps = DEFAULT_VALUE_FPS;
56 private AlivcVideoEncodeGopEnum mVideoEncodeGop = DEFAULT_VALUE_VIDEO_GOP;
57 private AlivcLivePushVideoConfig videoConfig = new AlivcLivePushVideoConfig();
58
59 private int mBFrames = 0;
60 private static Intent mediaProjectionPermissionResultData = null;
64 private AlivcLivePushCameraTypeEnum mCameraType = CAMERA_TYPE_FRONT;
65 private boolean mPreviewMirror = DEFAULT_VALUE_PREVIEW_MIRROR;
66 private boolean mPushMirror = DEFAULT_VALUE_PUSH_MIRROR;
67 private boolean mAudioOnly = DEFAULT_VALUE_AUDIO_ONLY;
68 private boolean mVideoOnly = DEFAULT_VALUE_VIDEO_ONLY;
69 private boolean mAutoFocus = DEFAULT_VALUE_AUTO_FOCUS;
70 private boolean mFocusBySensor = false;
71 private boolean mFlash = DEFAULT_VALUE_FLASH;
72
73 //rtmp module
74 private int mConnectRetryCount = DEFAULT_VALUE_INT_AUDIO_RETRY_COUNT;
75 private int mConnectRetryInterval = DEFAULT_VALUE_INT_RETRY_INTERVAL;
76
77 private long mPtsMaxDiff = DEFAULT_MAX_DIFF_PTS; // 音频在前
78 private int mMaxTimeoutCount = DEFAULT_MAX_TIMEOUT_COUNT;
79 //private int mAlarmRemainPacketSize = DEFAULT_START_ALRAM_PACKET_SIZE;
80 //private int mUndoAlarmRemainPacketSize = DEFAULT_STOP_ALARM_PACKET_SIZE;
81
82
83 // v6.8.0及以前,互动模式下默认单声道,基础模式下默认双声道;v6.8.1以后,基础模式下改为默认单声道,开播默认统一成单声道
88 private int audioBitRate = 64000;
90 private AlivcAudioSampleRateEnum mAudioSampleRate = AUDIO_SAMPLE_RATE_48000;
91
93 private AlivcEncodeType mVideoEncodeType = AlivcEncodeType.Encode_TYPE_H264;
94 private boolean enableVideoCodecDowngrade = true;
95
96 private int mVideoFormat = ImageFormat.NV21;
97 private int mAudioFormat = AudioFormat.ENCODING_PCM_16BIT;
98 private AlivcImageFormat mAlivcExternMainImageFormat = AlivcImageFormat.IMAGE_FORMAT_YUV420P;
99 private AlivcSoundFormat mAlivcExternMainSoundFormat = AlivcSoundFormat.SOUND_FORMAT_S16;
100
101 private int mExposure = 0;
102
103 private boolean mUseAliPlayerForBGM = false;
104
105 private boolean enableNarrowbandHDForScreenPusher = true;
106
107 private boolean enableRTSForInteractiveMode = false;
108
109 //最小帧率
110 private AlivcFpsEnum minFps = AlivcFpsEnum.FPS_8;
111
112 private boolean enableBitrateControl = true;
113 private boolean enableAutoResolution = false;
114
115 private boolean externMainStream = false;
116
117 private int sendDataTimeout = 3000;
119
120 private String mPausePushImagePath = "";
121 private String mNetworkPoorPushImagePath = "";
122
123 private boolean requireGLSharedContext = false;
124 private boolean mAudioCaptureWithoutMix = false;
125
126 private boolean h5CompatibleMode = false;
127
128 private boolean enableDataChannelMessage = false;
129
130 private boolean enableRemoteVideoFrameCallback = false;
131
133
134 private String mExtraInfo;
135
136 private HashMap<String, String> mExtras = new HashMap<>(4);
137
138 private String userName;
139
140 private HashMap<String, String> extras = new HashMap<>();
141
143
144 public AlivcLivePushConfig() {
145 mediaProjectionPermissionResultData = null;
146 if (Build.MANUFACTURER.equals("Letv") || Build.MODEL.equals("Le X620")) {
147 mAudioCaptureWithoutMix = true;
148 }
149 }
150
151 private ArrayList<WaterMarkInfo> waterMarkInfos = new ArrayList<>();
152
153 public int getVideoFormat() {
154 return mVideoFormat;
155 }
156
157 public void setVideoFormat(int videoFormat) {
158 this.mVideoFormat = videoFormat;
159 }
160
161 public int getAudioFormat() {
162 return mAudioFormat;
163 }
164
165 public void setAudioFormat(int audioFormat) {
166 this.mAudioFormat = audioFormat;
167 }
168
181 public void setLivePushMode(AlivcLiveMode pushMode) {
182 this.mLivePushMode = pushMode;
183 // 不同模式下,分辨率对应的width/height/initial bitrate/target bitrate/min bitrate不一样,需刷新
184 setResolution(mResolution);
185 }
186
194 return mLivePushMode;
195 }
196
197 private boolean checkLiveInteractiveMode() {
198 return mLivePushMode == AlivcLiveMode.AlivcLiveInteractiveMode;
199 }
200
207 return videoConfig;
208 }
209
215 public void setVideoConfig(AlivcLivePushVideoConfig videoConfig) {
216 this.videoConfig = videoConfig;
217
218 if (videoConfig != null) {
219 if (videoConfig.resolution != null) {
220 this.mResolution = videoConfig.resolution;
221 }
222 if (videoConfig.initialBitrate > 0) {
223 this.mInitialVideoBitrate = videoConfig.initialBitrate;
224 }
225 if (videoConfig.minBitrate > 0) {
226 this.mMinVideoBitrate = videoConfig.minBitrate;
227 }
228 if (videoConfig.targetBitrate > 0) {
229 this.mTargetVideoBitrate = videoConfig.targetBitrate;
230 }
231 if (videoConfig.fps > 0) {
232 this.mFps = AlivcFpsEnum.fromValue(videoConfig.fps);
233 }
234 if (videoConfig.gop != null) {
235 this.mVideoEncodeGop = videoConfig.gop;
236 }
237 }
238 }
239
249 return mResolution;
250 }
251
265 public void setResolution(AlivcResolutionEnum resolution) {
266 this.mResolution = resolution;
267
268 mTargetVideoBitrate = AlivcResolutionEnum.getTargetBitrate(resolution, mLivePushMode);
269 mInitialVideoBitrate = AlivcResolutionEnum.getInitBitrate(resolution, mLivePushMode);
270 mMinVideoBitrate = AlivcResolutionEnum.getMinBitrate(resolution, mLivePushMode);
271
272 if (videoConfig != null) {
273 videoConfig.resolution = resolution;
274 videoConfig.targetBitrate = mTargetVideoBitrate;
275 videoConfig.initialBitrate = mInitialVideoBitrate;
276 videoConfig.minBitrate = mMinVideoBitrate;
277 }
278 }
279
285 public String getExtraInfo() {
286 return mExtraInfo;
287 }
288
296 public void setExtraInfo(String extraInfo) {
297 mExtraInfo = extraInfo;
298 }
299
300 public String getUserName() {
301 return userName;
302 }
303
304 public void setUserName(String userName) {
305 this.userName = userName;
306 }
307
314 public HashMap<String, String> getExtras() {
315 return extras;
316 }
317
324 public void setExtras(HashMap<String, String> extras) {
325 if (extras == null || extras.isEmpty()) {
326 return;
327 }
328 this.extras.putAll(extras);
329 }
330
337 public boolean isH5CompatibleMode() {
338 return h5CompatibleMode;
339 }
340
351 public void setH5CompatibleMode(boolean h5CompatibleMode) {
352 this.h5CompatibleMode = h5CompatibleMode;
353 }
354
361 public boolean isEnableDataChannelMessage() {
362 return enableDataChannelMessage;
363 }
364
371 public void setEnableDataChannelMessage(boolean enableDataChannelMessage) {
372 this.enableDataChannelMessage = enableDataChannelMessage;
373 }
374
382 return enableRemoteVideoFrameCallback;
383 }
384
391 public void setEnableRemoteVideoFrameCallback(boolean enable) {
392 this.enableRemoteVideoFrameCallback = enable;
393 }
394
404 return mCameraCaptureOutputPreference;
405 }
406
416 this.mCameraCaptureOutputPreference = cameraCaptureOutputPreference;
417 }
418
427 return monitorLevel;
428 }
429
440 public void setMonitorLevel(AlivcLivePushMonitorLevel monitorLevel) {
441 this.monitorLevel = monitorLevel;
442 }
443
449 public int getFps() {
450 return mFps.getFps();
451 }
452
462 public void setFps(AlivcFpsEnum fps) {
463 this.mFps = fps;
464
465 if (videoConfig != null && fps != null) {
466 videoConfig.fps = fps.getFps();
467 }
468 }
469
476 return mTargetVideoBitrate;
477 }
478
489 public void setTargetVideoBitrate(int targetBitRate) {
490 this.mTargetVideoBitrate = targetBitRate;
491
492 if (videoConfig != null) {
493 videoConfig.targetBitrate = targetBitRate;
494 }
495 }
496
502 public int getMinVideoBitrate() {
503 return mMinVideoBitrate;
504 }
505
516 public void setMinVideoBitrate(int minBitrate) {
517 this.mMinVideoBitrate = minBitrate;
518
519 if (videoConfig != null) {
520 videoConfig.minBitrate = minBitrate;
521 }
522 }
523
531 public int getBFrames() {
532 return mBFrames;
533 }
534
542 public void setBFrames(int bFrame) {
543 this.mBFrames = bFrame;
544 }
545
555 return mAudioSampleRate;
556 }
557
567 this.mAudioSampleRate = audioSample;
568 }
569
578 return mPreviewOrientation.getOrientation();
579 }
580
589 public void setPreviewOrientation(AlivcPreviewOrientationEnum previewOrientation) {
590 this.mPreviewOrientation = previewOrientation;
591 }
592
602 public int getPreviewRotation() {
603 return mPreviewRotation.getRotation();
604 }
605
617 this.mPreviewRotation = rotation;
618 }
619
627 public int getCameraType() {
628 return mCameraType.getCameraId();
629 }
630
640 this.mCameraType = cameraType;
641 }
642
650 public boolean isPreviewMirror() {
651 return mPreviewMirror;
652 }
653
661 public void setPreviewMirror(boolean mirror) {
662 this.mPreviewMirror = mirror;
663 }
664
672 public boolean isAudioOnly() {
673 return mAudioOnly;
674 }
675
683 public void setAudioOnly(boolean audioOnly) {
684 this.mAudioOnly = audioOnly;
685 }
686
694 public boolean isVideoOnly() {
695 return mVideoOnly;
696 }
697
705 public void setVideoOnly(boolean videoOnly) {
706 this.mVideoOnly = videoOnly;
707 }
708
716 public boolean isAutoFocus() {
717 return mAutoFocus;
718 }
719
727 public void setAutoFocus(boolean autoFocus) {
728 this.mAutoFocus = autoFocus;
729 }
730
738 public boolean isFocusBySensor() {
739 return mFocusBySensor;
740 }
741
751 public void setFocusBySensor(boolean focusBySensor) {
752 this.mFocusBySensor = focusBySensor;
753 }
754
762 public boolean isFlash() {
763 return mFlash;
764 }
765
773 public void setFlash(boolean flash) {
774 this.mFlash = flash;
775 }
776
784 public int getSendDataTimeout() {
785 return sendDataTimeout;
786 }
787
795 public void setSendDataTimeout(int sendDataTimeout) {
796 this.sendDataTimeout = sendDataTimeout;
797 }
798
805 public String getPausePushImage() {
806 return mPausePushImagePath;
807 }
808
816 public void setPausePushImage(String path) {
817 mPausePushImagePath = path;
818 }
819
826 public String getNetworkPoorPushImage() {
827 return mNetworkPoorPushImagePath;
828 }
829
837 public void setNetworkPoorPushImage(String path) {
838 mNetworkPoorPushImagePath = path;
839 }
840
847 return mInitialVideoBitrate;
848 }
849
857 public void setInitialVideoBitrate(int initialVideoBitrate) {
858 this.mInitialVideoBitrate = initialVideoBitrate;
859
860 if (videoConfig != null) {
861 videoConfig.initialBitrate = initialVideoBitrate;
862 }
863 }
864
872 public int getConnectRetryCount() {
873 return mConnectRetryCount;
874 }
875
883 public void setConnectRetryCount(int connectRetryCount) {
884 this.mConnectRetryCount = connectRetryCount;
885 }
886
895 return mConnectRetryInterval;
896 }
897
905 public void setConnectRetryInterval(int connectRetryInterval) {
906 this.mConnectRetryInterval = connectRetryInterval;
907 }
908
916 public boolean isPushMirror() {
917 return mPushMirror;
918 }
919
927 public void setPushMirror(boolean pushMirror) {
928 this.mPushMirror = pushMirror;
929 }
930
940 return mVideoEncodeMode;
941 }
942
951 public void setVideoEncodeMode(AlivcEncodeModeEnum videoEncodeMode) {
952 this.mVideoEncodeMode = videoEncodeMode;
953 }
954
964 return mVideoEncodeType;
965 }
966
975 public void setVideoEncodeType(AlivcEncodeType videoEncodeType) {
976 this.mVideoEncodeType = videoEncodeType;
977 }
978
988 return mAudioEncodeMode;
989 }
990
999 public void setAudioEncodeMode(AlivcEncodeModeEnum audioEncodeMode) {
1000 this.mAudioEncodeMode = audioEncodeMode;
1001 }
1002
1008 public int getWidth() {
1009 return AlivcResolutionEnum.getResolutionWidth(mResolution, mLivePushMode);
1010 }
1011
1017 public int getHeight() {
1018 return AlivcResolutionEnum.getResolutionHeight(mResolution, mLivePushMode);
1019 }
1020
1027 public int getAudioChannels() {
1028 return mAudioChannels.getChannelCount();
1029 }
1030
1037 public void setAudioChannels(AlivcAudioChannelEnum audioChannels) {
1038 mAudioChannels = audioChannels;
1039 }
1040
1048 public int getVideoEncodeGop() {
1049 return mVideoEncodeGop.getGop();
1050 }
1051
1061 public void setVideoEncodeGop(AlivcVideoEncodeGopEnum videoEncodeGop) {
1062 mVideoEncodeGop = videoEncodeGop;
1063
1064 if (videoConfig != null) {
1065 videoConfig.gop = videoEncodeGop;
1066 }
1067 }
1068
1078 return enableVideoCodecDowngrade;
1079 }
1080
1089 public void setEnableVideoCodecDowngrade(boolean enableVideoCodecDowngrade) {
1090 this.enableVideoCodecDowngrade = enableVideoCodecDowngrade;
1091 }
1092
1102 public int getExposure() {
1103 return mExposure;
1104 }
1105
1115 public void setExposure(int exposure) {
1116 this.mExposure = exposure;
1117 }
1118
1131 mUseAliPlayerForBGM = useAliPlayerForBGM;
1132 }
1133
1145 public boolean useAliPlayerForBGM() {
1146 return mUseAliPlayerForBGM;
1147 }
1148
1158 public void setEnableNarrowbandHDForScreenPusher(boolean enable) {
1159 enableNarrowbandHDForScreenPusher = enable;
1160 }
1161
1172 return enableNarrowbandHDForScreenPusher;
1173 }
1174
1182 return enableRTSForInteractiveMode;
1183 }
1184
1191 public void setEnableRTSForInteractiveMode(boolean enableRTSForInteractiveMode) {
1192 this.enableRTSForInteractiveMode = enableRTSForInteractiveMode;
1193 }
1194
1203 public int getMinFps() {
1204 return minFps.getFps();
1205 }
1206
1215 public void setMinFps(AlivcFpsEnum minFps) {
1216 this.minFps = minFps;
1217 }
1218
1226 return this.audioCodecType;
1227 }
1228
1235 public void setAudioCodecType(AlivcLiveAudioCodecType audioCodecType) {
1236 this.audioCodecType = audioCodecType;
1237 }
1238
1248 return audioProfile;
1249 }
1250
1259 public void setAudioProfile(AlivcAudioAACProfileEnum audioProfile) {
1260 this.audioProfile = audioProfile;
1261 }
1262
1269 public int getAudioBitRate() {
1270 return audioBitRate;
1271 }
1272
1279 public void setAudioBitRate(int audioBitRate) {
1280 this.audioBitRate = audioBitRate;
1281 }
1282
1294 return audioSceneMode;
1295 }
1296
1307 public void setAudioSceneMode(AlivcAudioSceneModeEnum audioSceneMode) {
1308 this.audioSceneMode = audioSceneMode;
1309 }
1310
1320 this.qualityMode = quality;
1321 }
1322
1332 return qualityMode;
1333 }
1334
1342 return mediaProjectionPermissionResultData;
1343 }
1344
1351 public static void setMediaProjectionPermissionResultData(Intent mediaProjectionPermissionResultData) {
1352 AlivcLivePushConfig.mediaProjectionPermissionResultData = mediaProjectionPermissionResultData;
1353 }
1354
1362 public boolean isEnableBitrateControl() {
1363 return enableBitrateControl;
1364 }
1365
1373 public void setEnableBitrateControl(boolean enableBitrateControl) {
1374 this.enableBitrateControl = enableBitrateControl;
1375 }
1376
1384 public boolean isEnableAutoResolution() {
1385 return enableAutoResolution;
1386 }
1387
1395 public void setEnableAutoResolution(boolean enableAutoResolution) {
1396 this.enableAutoResolution = enableAutoResolution;
1397 }
1398
1406 public boolean isExternMainStream() {
1407 return externMainStream;
1408 }
1409
1420 public void setExternMainStream(boolean externMainStream) {
1421 this.externMainStream = externMainStream;
1422 }
1423
1436 public void setExternMainStream(boolean externMainStream, AlivcImageFormat imageFormat, AlivcSoundFormat soundFormat) {
1437 this.externMainStream = externMainStream;
1438 mAlivcExternMainImageFormat = imageFormat;
1439 mAlivcExternMainSoundFormat = soundFormat;
1440 }
1441
1451 return mAlivcExternMainImageFormat;
1452 }
1453
1461 public void setAlivcExternMainImageFormat(AlivcImageFormat alivcExternMainImageFormat) {
1462 this.mAlivcExternMainImageFormat = alivcExternMainImageFormat;
1463 }
1464
1474 return mAlivcExternMainSoundFormat;
1475 }
1476
1486 this.mAlivcExternMainSoundFormat = soundFormat;
1487 }
1488
1498 return mPreviewDisplayMode;
1499 }
1500
1510 this.mPreviewDisplayMode = displayMode;
1511 }
1512
1521 public void setRequireRenderContextNotify(boolean enable) {
1522 this.requireGLSharedContext = enable;
1523 }
1524
1534 return this.requireGLSharedContext;
1535 }
1536
1544 public void setAudioCaptureWithoutMix(boolean on) {
1545 this.mAudioCaptureWithoutMix = on;
1546 }
1547
1555 public boolean getAudioCaptureWithoutMix() {
1556 return mAudioCaptureWithoutMix;
1557 }
1558
1571 @Deprecated
1572 public void addWaterMark(String path, float x, float y, float width) {
1573 WaterMarkInfo waterMarkInfo = new WaterMarkInfo();
1574 waterMarkInfo.mWaterMarkPath = path;
1575 waterMarkInfo.mWaterMarkCoordX = x;
1576 waterMarkInfo.mWaterMarkCoordY = y;
1577 waterMarkInfo.mWaterMarkWidth = width;
1578 if (waterMarkInfos.size() < 3) {
1579 waterMarkInfos.add(waterMarkInfo);
1580 }
1581 }
1582
1586 @Deprecated
1587 public void clearWaterMark() {
1588 waterMarkInfos.clear();
1589 }
1590
1596 @Deprecated
1597 public void removeWaterMark(String path) {
1598 for (WaterMarkInfo info : waterMarkInfos) {
1599 if (path != null && path.equals(info.mWaterMarkPath)) {
1600 waterMarkInfos.remove(info);
1601 break;
1602 }
1603 }
1604 }
1605
1612 public ArrayList<WaterMarkInfo> getWaterMarkInfos() {
1613 return waterMarkInfos;
1614 }
1615
1616 @Override
1617 public String toString() {
1618 return "AlivcLivePushConfig{" +
1619 "mLivePushMode=" + mLivePushMode +
1620 ", mResolution=" + mResolution +
1621 ", mTargetVideoBitrate=" + mTargetVideoBitrate +
1622 ", mMinVideoBitrate=" + mMinVideoBitrate +
1623 ", mInitialVideoBitrate=" + mInitialVideoBitrate +
1624 ", mFps=" + mFps +
1625 ", mVideoEncodeGop=" + mVideoEncodeGop +
1626 ", videoConfig=" + videoConfig +
1627 ", mBFrames=" + mBFrames +
1628 ", mPreviewOrientation=" + mPreviewOrientation +
1629 ", mPreviewRotation=" + mPreviewRotation +
1630 ", mPreviewDisplayMode=" + mPreviewDisplayMode +
1631 ", mCameraType=" + mCameraType +
1632 ", mPreviewMirror=" + mPreviewMirror +
1633 ", mPushMirror=" + mPushMirror +
1634 ", mAudioOnly=" + mAudioOnly +
1635 ", mVideoOnly=" + mVideoOnly +
1636 ", mAutoFocus=" + mAutoFocus +
1637 ", mFocusBySensor=" + mFocusBySensor +
1638 ", mFlash=" + mFlash +
1639 ", mConnectRetryCount=" + mConnectRetryCount +
1640 ", mConnectRetryInterval=" + mConnectRetryInterval +
1641 ", mPtsMaxDiff=" + mPtsMaxDiff +
1642 ", mMaxTimeoutCount=" + mMaxTimeoutCount +
1643 ", mVideoFormat=" + mVideoFormat +
1644 ", mAudioFormat=" + mAudioFormat +
1645 ", mAlivcExternMainImageFormat=" + mAlivcExternMainImageFormat +
1646 ", mAlivcExternMainSoundFormat=" + mAlivcExternMainSoundFormat +
1647 ", mExposure=" + mExposure +
1648 ", mUseAliPlayerForBGM=" + mUseAliPlayerForBGM +
1649 ", enableNarrowbandHDForScreenPusher=" + enableNarrowbandHDForScreenPusher +
1650 ", enableRTSForInteractiveMode=" + enableRTSForInteractiveMode +
1651 ", minFps=" + minFps +
1652 ", enableBitrateControl=" + enableBitrateControl +
1653 ", enableAutoResolution=" + enableAutoResolution +
1654 ", externMainStream=" + externMainStream +
1655 ", sendDataTimeout=" + sendDataTimeout +
1656 ", qualityMode=" + qualityMode +
1657 ", audioCodecType=" + audioCodecType +
1658 ", audioProfile=" + audioProfile +
1659 ", audioBitRate=" + audioBitRate +
1660 ", audioSceneMode=" + audioSceneMode +
1661 ", mAudioSampleRate=" + mAudioSampleRate +
1662 ", mAudioChannels=" + mAudioChannels +
1663 ", mAudioEncodeMode=" + mAudioEncodeMode +
1664 ", mVideoEncodeType=" + mVideoEncodeType +
1665 ", mVideoEncodeMode=" + mVideoEncodeMode +
1666 ", mVideoEncodeGop=" + mVideoEncodeGop +
1667 ", enableVideoCodecDowngrade=" + enableVideoCodecDowngrade +
1668 ", mPausePushImagePath='" + mPausePushImagePath + '\'' +
1669 ", mNetworkPoorPushImagePath='" + mNetworkPoorPushImagePath + '\'' +
1670 ", requireGLSharedContext=" + requireGLSharedContext +
1671 ", mAudioCaptureWithoutMix=" + mAudioCaptureWithoutMix +
1672 ", h5CompatibleMode=" + h5CompatibleMode +
1673 ", enableDataChannelMessage=" + enableDataChannelMessage +
1674 ", mExtraInfo='" + mExtraInfo + '\'' +
1675 ", mExtras=" + mExtras +
1676 ", userName='" + userName + '\'' +
1677 ", monitorLevel=" + monitorLevel +
1678 ", waterMarkInfos=" + waterMarkInfos +
1679 '}';
1680 }
1681}
void setAlivcExternMainSoundFormat(AlivcSoundFormat soundFormat)
void setExternMainStream(boolean externMainStream)
void setAudioSampleRate(AlivcAudioSampleRateEnum audioSample)
void setEnableBitrateControl(boolean enableBitrateControl)
void setEnableRTSForInteractiveMode(boolean enableRTSForInteractiveMode)
void setVideoConfig(AlivcLivePushVideoConfig videoConfig)
void setVideoEncodeGop(AlivcVideoEncodeGopEnum videoEncodeGop)
void setResolution(AlivcResolutionEnum resolution)
void setAudioChannels(AlivcAudioChannelEnum audioChannels)
void setExternMainStream(boolean externMainStream, AlivcImageFormat imageFormat, AlivcSoundFormat soundFormat)
static void setMediaProjectionPermissionResultData(Intent mediaProjectionPermissionResultData)
void setVideoEncodeMode(AlivcEncodeModeEnum videoEncodeMode)
void setAudioProfile(AlivcAudioAACProfileEnum audioProfile)
void setConnectRetryInterval(int connectRetryInterval)
void setAudioSceneMode(AlivcAudioSceneModeEnum audioSceneMode)
void setEnableDataChannelMessage(boolean enableDataChannelMessage)
void setCameraType(AlivcLivePushCameraTypeEnum cameraType)
void addWaterMark(String path, float x, float y, float width)
void setAudioCodecType(AlivcLiveAudioCodecType audioCodecType)
void setPreviewDisplayMode(AlivcPreviewDisplayMode displayMode)
void setEnableAutoResolution(boolean enableAutoResolution)
void setExtras(HashMap< String, String > extras)
void setUseAliPlayerForBGM(boolean useAliPlayerForBGM)
void setPreviewRotation(AlivcPreviewRotationEnum rotation)
void setConnectRetryCount(int connectRetryCount)
void setMonitorLevel(AlivcLivePushMonitorLevel monitorLevel)
void setH5CompatibleMode(boolean h5CompatibleMode)
void setEnableVideoCodecDowngrade(boolean enableVideoCodecDowngrade)
void setCameraCaptureOutputPreference(AlivcLiveCameraCaptureOutputPreference cameraCaptureOutputPreference)
void setVideoEncodeType(AlivcEncodeType videoEncodeType)
void setQualityMode(AlivcQualityModeEnum quality)
AlivcLiveCameraCaptureOutputPreference getCameraCaptureOutputPreference()
void setInitialVideoBitrate(int initialVideoBitrate)
void setPreviewOrientation(AlivcPreviewOrientationEnum previewOrientation)
void setAlivcExternMainImageFormat(AlivcImageFormat alivcExternMainImageFormat)
void setAudioEncodeMode(AlivcEncodeModeEnum audioEncodeMode)
Enumeration of streaming audio channel.
Enumeration of streaming audio sample rate.
Enumeration of streaming audio scene mode.
Enumeration of streaming encode mode.
Enumeration of streaming encode type.
Enumeration of streaming video fps.
static AlivcFpsEnum fromValue(int value)
Enumeration of streaming image format.
static int getMinBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getTargetBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getResolutionWidth(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getInitBitrate(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)
static int getResolutionHeight(AlivcResolutionEnum resolution, AlivcLiveMode liveMode)