AliVCSDK 6.17.0
阿里云音视频SDK,为视频开发者提供一站式接入服务
 
载入中...
搜索中...
未找到
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
48@Visible
49public class AlivcLivePushConfig implements Serializable {
50 public static final String CONFIG = "AlivcLivePushConfig";
51
52 private AlivcLiveMode mLivePushMode = AlivcLiveMode.AlivcLiveBasicMode;
53
54 private AlivcResolutionEnum mResolution = DEFAULT_VALUE_INT_DEFINITION;
55 private int mTargetVideoBitrate = DEFAULT_VALUE_INT_TARGET_BITRATE;
56 private int mMinVideoBitrate = DEFAULT_VALUE_INT_MIN_BITRATE;
57 private int mInitialVideoBitrate = DEFAULT_VALUE_INT_INIT_BITRATE;
58 private AlivcFpsEnum mFps = DEFAULT_VALUE_FPS;
59 private AlivcVideoEncodeGopEnum mVideoEncodeGop = DEFAULT_VALUE_VIDEO_GOP;
60 private AlivcLivePushVideoConfig videoConfig = new AlivcLivePushVideoConfig();
61
62 private int mBFrames = 0;
63 private static Intent mediaProjectionPermissionResultData = null;
67 private AlivcLivePushCameraTypeEnum mCameraType = CAMERA_TYPE_FRONT;
68 private boolean mPreviewMirror = DEFAULT_VALUE_PREVIEW_MIRROR;
69 private boolean mPushMirror = DEFAULT_VALUE_PUSH_MIRROR;
70 private boolean mAudioOnly = DEFAULT_VALUE_AUDIO_ONLY;
71 private boolean mVideoOnly = DEFAULT_VALUE_VIDEO_ONLY;
72 private boolean mAutoFocus = DEFAULT_VALUE_AUTO_FOCUS;
73 private boolean mFocusBySensor = false;
74 private boolean mFlash = DEFAULT_VALUE_FLASH;
75
76 //rtmp module
77 private int mConnectRetryCount = DEFAULT_VALUE_INT_AUDIO_RETRY_COUNT;
78 private int mConnectRetryInterval = DEFAULT_VALUE_INT_RETRY_INTERVAL;
79
80 private long mPtsMaxDiff = DEFAULT_MAX_DIFF_PTS; // 音频在前
81 private int mMaxTimeoutCount = DEFAULT_MAX_TIMEOUT_COUNT;
82 //private int mAlarmRemainPacketSize = DEFAULT_START_ALRAM_PACKET_SIZE;
83 //private int mUndoAlarmRemainPacketSize = DEFAULT_STOP_ALARM_PACKET_SIZE;
84
85
86 // v6.8.0及以前,互动模式下默认单声道,基础模式下默认双声道;v6.8.1以后,基础模式下改为默认单声道,开播默认统一成单声道
91 private int audioBitRate = 64000;
93 private AlivcAudioSampleRateEnum mAudioSampleRate = AUDIO_SAMPLE_RATE_48000;
94
96 private AlivcEncodeType mVideoEncodeType = AlivcEncodeType.Encode_TYPE_H264;
97 private boolean enableVideoCodecDowngrade = true;
98
99 private int mVideoFormat = ImageFormat.NV21;
100 private int mAudioFormat = AudioFormat.ENCODING_PCM_16BIT;
101 private AlivcImageFormat mAlivcExternMainImageFormat = AlivcImageFormat.IMAGE_FORMAT_YUV420P;
102 private AlivcSoundFormat mAlivcExternMainSoundFormat = AlivcSoundFormat.SOUND_FORMAT_S16;
103
104 private int mExposure = 0;
105
106 private boolean mUseAliPlayerForBGM = false;
107
108 private boolean enableNarrowbandHDForScreenPusher = true;
109
110 private boolean enableRTSForInteractiveMode = false;
111
112 //最小帧率
113 private AlivcFpsEnum minFps = AlivcFpsEnum.FPS_8;
114
115 private boolean enableBitrateControl = true;
116 private boolean enableAutoResolution = false;
117
118 private boolean externMainStream = false;
119
120 private int sendDataTimeout = 3000;
121 private AlivcQualityModeEnum qualityMode = AlivcQualityModeEnum.QM_RESOLUTION_FIRST;
122
123 private String mPausePushImagePath = "";
124 private String mNetworkPoorPushImagePath = "";
125
126 private boolean requireGLSharedContext = false;
127 private boolean mAudioCaptureWithoutMix = false;
128
129 private boolean h5CompatibleMode = false;
130
131 private boolean enableDataChannelMessage = false;
132
133 private boolean enableRemoteVideoFrameCallback = false;
134
136
137 private String mExtraInfo;
138
139 private HashMap<String, String> mExtras = new HashMap<>(4);
140
141 private String userName;
142
143 private HashMap<String, String> extras = new HashMap<>();
144
146
147 public AlivcLivePushConfig() {
148 mediaProjectionPermissionResultData = null;
149 if (Build.MANUFACTURER.equals("Letv") || Build.MODEL.equals("Le X620")) {
150 mAudioCaptureWithoutMix = true;
151 }
152 }
153
154 private ArrayList<WaterMarkInfo> waterMarkInfos = new ArrayList<>();
155
156 public int getVideoFormat() {
157 return mVideoFormat;
158 }
159
160 public void setVideoFormat(int videoFormat) {
161 this.mVideoFormat = videoFormat;
162 }
163
164 public int getAudioFormat() {
165 return mAudioFormat;
166 }
167
168 public void setAudioFormat(int audioFormat) {
169 this.mAudioFormat = audioFormat;
170 }
171
184 public void setLivePushMode(AlivcLiveMode pushMode) {
185 this.mLivePushMode = pushMode;
186 // 不同模式下,分辨率对应的width/height/initial bitrate/target bitrate/min bitrate不一样,需刷新
187 setResolution(mResolution);
188 }
189
197 return mLivePushMode;
198 }
199
200 private boolean checkLiveInteractiveMode() {
201 return mLivePushMode == AlivcLiveMode.AlivcLiveInteractiveMode;
202 }
203
210 return videoConfig;
211 }
212
218 public void setVideoConfig(AlivcLivePushVideoConfig videoConfig) {
219 this.videoConfig = videoConfig;
220
221 if (videoConfig != null) {
222 if (videoConfig.resolution != null) {
223 this.mResolution = videoConfig.resolution;
224 }
225 if (videoConfig.initialBitrate > 0) {
226 this.mInitialVideoBitrate = videoConfig.initialBitrate;
227 }
228 if (videoConfig.minBitrate > 0) {
229 this.mMinVideoBitrate = videoConfig.minBitrate;
230 }
231 if (videoConfig.targetBitrate > 0) {
232 this.mTargetVideoBitrate = videoConfig.targetBitrate;
233 }
234 if (videoConfig.fps > 0) {
235 this.mFps = AlivcFpsEnum.fromValue(videoConfig.fps);
236 }
237 if (videoConfig.gop != null) {
238 this.mVideoEncodeGop = videoConfig.gop;
239 }
240 }
241 }
242
252 return mResolution;
253 }
254
267 public void setResolution(AlivcResolutionEnum resolution) {
268 this.mResolution = resolution;
269
270 mTargetVideoBitrate = AlivcResolutionEnum.getTargetBitrate(resolution, mLivePushMode);
271 mInitialVideoBitrate = AlivcResolutionEnum.getInitBitrate(resolution, mLivePushMode);
272 mMinVideoBitrate = AlivcResolutionEnum.getMinBitrate(resolution, mLivePushMode);
273
274 if (videoConfig != null) {
275 videoConfig.resolution = resolution;
276 videoConfig.targetBitrate = mTargetVideoBitrate;
277 videoConfig.initialBitrate = mInitialVideoBitrate;
278 videoConfig.minBitrate = mMinVideoBitrate;
279 }
280 }
281
287 public String getExtraInfo() {
288 return mExtraInfo;
289 }
290
298 public void setExtraInfo(String extraInfo) {
299 mExtraInfo = extraInfo;
300 }
301
302 public String getUserName() {
303 return userName;
304 }
305
306 public void setUserName(String userName) {
307 this.userName = userName;
308 }
309
316 public HashMap<String, String> getExtras() {
317 return extras;
318 }
319
326 public void setExtras(HashMap<String, String> extras) {
327 if (extras == null || extras.isEmpty()) {
328 return;
329 }
330 this.extras.putAll(extras);
331 }
332
339 public boolean isH5CompatibleMode() {
340 return h5CompatibleMode;
341 }
342
352 public void setH5CompatibleMode(boolean h5CompatibleMode) {
353 this.h5CompatibleMode = h5CompatibleMode;
354 }
355
362 public boolean isEnableDataChannelMessage() {
363 return enableDataChannelMessage;
364 }
365
372 public void setEnableDataChannelMessage(boolean enableDataChannelMessage) {
373 this.enableDataChannelMessage = enableDataChannelMessage;
374 }
375
383 return enableRemoteVideoFrameCallback;
384 }
385
392 public void setEnableRemoteVideoFrameCallback(boolean enable) {
393 this.enableRemoteVideoFrameCallback = enable;
394 }
395
405 return mCameraCaptureOutputPreference;
406 }
407
417 this.mCameraCaptureOutputPreference = cameraCaptureOutputPreference;
418 }
419
428 return monitorLevel;
429 }
430
441 public void setMonitorLevel(AlivcLivePushMonitorLevel monitorLevel) {
442 this.monitorLevel = monitorLevel;
443 }
444
450 public int getFps() {
451 return mFps.getFps();
452 }
453
463 public void setFps(AlivcFpsEnum fps) {
464 this.mFps = fps;
465
466 if (videoConfig != null && fps != null) {
467 videoConfig.fps = fps.getFps();
468 }
469 }
470
477 return mTargetVideoBitrate;
478 }
479
490 public void setTargetVideoBitrate(int targetBitRate) {
491 this.mTargetVideoBitrate = targetBitRate;
492
493 if (videoConfig != null) {
494 videoConfig.targetBitrate = targetBitRate;
495 }
496 }
497
503 public int getMinVideoBitrate() {
504 return mMinVideoBitrate;
505 }
506
517 public void setMinVideoBitrate(int minBitrate) {
518 this.mMinVideoBitrate = minBitrate;
519
520 if (videoConfig != null) {
521 videoConfig.minBitrate = minBitrate;
522 }
523 }
524
530 public int getBFrames() {
531 return mBFrames;
532 }
533
541 public void setBFrames(int bFrame) {
542 this.mBFrames = bFrame;
543 }
544
554 return mAudioSampleRate;
555 }
556
566 this.mAudioSampleRate = audioSample;
567 }
568
577 return mPreviewOrientation.getOrientation();
578 }
579
588 public void setPreviewOrientation(AlivcPreviewOrientationEnum previewOrientation) {
589 this.mPreviewOrientation = previewOrientation;
590 }
591
601 public int getPreviewRotation() {
602 return mPreviewRotation.getRotation();
603 }
604
616 this.mPreviewRotation = rotation;
617 }
618
626 public int getCameraType() {
627 return mCameraType.getCameraId();
628 }
629
639 this.mCameraType = cameraType;
640 }
641
649 public boolean isPreviewMirror() {
650 return mPreviewMirror;
651 }
652
660 public void setPreviewMirror(boolean mirror) {
661 this.mPreviewMirror = mirror;
662 }
663
671 public boolean isAudioOnly() {
672 return mAudioOnly;
673 }
674
682 public void setAudioOnly(boolean audioOnly) {
683 this.mAudioOnly = audioOnly;
684 }
685
691 public boolean isVideoOnly() {
692 return mVideoOnly;
693 }
694
702 public void setVideoOnly(boolean videoOnly) {
703 this.mVideoOnly = videoOnly;
704 }
705
713 public boolean isAutoFocus() {
714 return mAutoFocus;
715 }
716
724 public void setAutoFocus(boolean autoFocus) {
725 this.mAutoFocus = autoFocus;
726 }
727
735 public boolean isFocusBySensor() {
736 return mFocusBySensor;
737 }
738
748 public void setFocusBySensor(boolean focusBySensor) {
749 this.mFocusBySensor = focusBySensor;
750 }
751
759 public boolean isFlash() {
760 return mFlash;
761 }
762
770 public void setFlash(boolean flash) {
771 this.mFlash = flash;
772 }
773
781 public int getSendDataTimeout() {
782 return sendDataTimeout;
783 }
784
792 public void setSendDataTimeout(int sendDataTimeout) {
793 this.sendDataTimeout = sendDataTimeout;
794 }
795
802 public String getPausePushImage() {
803 return mPausePushImagePath;
804 }
805
813 public void setPausePushImage(String path) {
814 mPausePushImagePath = path;
815 }
816
823 public String getNetworkPoorPushImage() {
824 return mNetworkPoorPushImagePath;
825 }
826
834 public void setNetworkPoorPushImage(String path) {
835 mNetworkPoorPushImagePath = path;
836 }
837
844 return mInitialVideoBitrate;
845 }
846
854 public void setInitialVideoBitrate(int initialVideoBitrate) {
855 this.mInitialVideoBitrate = initialVideoBitrate;
856
857 if (videoConfig != null) {
858 videoConfig.initialBitrate = initialVideoBitrate;
859 }
860 }
861
869 public int getConnectRetryCount() {
870 return mConnectRetryCount;
871 }
872
880 public void setConnectRetryCount(int connectRetryCount) {
881 this.mConnectRetryCount = connectRetryCount;
882 }
883
892 return mConnectRetryInterval;
893 }
894
902 public void setConnectRetryInterval(int connectRetryInterval) {
903 this.mConnectRetryInterval = connectRetryInterval;
904 }
905
913 public boolean isPushMirror() {
914 return mPushMirror;
915 }
916
924 public void setPushMirror(boolean pushMirror) {
925 this.mPushMirror = pushMirror;
926 }
927
937 return mVideoEncodeMode;
938 }
939
948 public void setVideoEncodeMode(AlivcEncodeModeEnum videoEncodeMode) {
949 this.mVideoEncodeMode = videoEncodeMode;
950 }
951
961 return mVideoEncodeType;
962 }
963
972 public void setVideoEncodeType(AlivcEncodeType videoEncodeType) {
973 this.mVideoEncodeType = videoEncodeType;
974 }
975
985 return mAudioEncodeMode;
986 }
987
996 public void setAudioEncodeMode(AlivcEncodeModeEnum audioEncodeMode) {
997 this.mAudioEncodeMode = audioEncodeMode;
998 }
999
1005 public int getWidth() {
1006 return AlivcResolutionEnum.getResolutionWidth(mResolution, mLivePushMode);
1007 }
1008
1014 public int getHeight() {
1015 return AlivcResolutionEnum.getResolutionHeight(mResolution, mLivePushMode);
1016 }
1017
1024 public int getAudioChannels() {
1025 return mAudioChannels.getChannelCount();
1026 }
1027
1034 public void setAudioChannels(AlivcAudioChannelEnum audioChannels) {
1035 mAudioChannels = audioChannels;
1036 }
1037
1045 public int getVideoEncodeGop() {
1046 return mVideoEncodeGop.getGop();
1047 }
1048
1058 public void setVideoEncodeGop(AlivcVideoEncodeGopEnum videoEncodeGop) {
1059 mVideoEncodeGop = videoEncodeGop;
1060
1061 if (videoConfig != null) {
1062 videoConfig.gop = videoEncodeGop;
1063 }
1064 }
1065
1074 return enableVideoCodecDowngrade;
1075 }
1076
1084 public void setEnableVideoCodecDowngrade(boolean enableVideoCodecDowngrade) {
1085 this.enableVideoCodecDowngrade = enableVideoCodecDowngrade;
1086 }
1087
1097 public int getExposure() {
1098 return mExposure;
1099 }
1100
1110 public void setExposure(int exposure) {
1111 this.mExposure = exposure;
1112 }
1113
1124 mUseAliPlayerForBGM = useAliPlayerForBGM;
1125 }
1126
1136 public boolean useAliPlayerForBGM() {
1137 return mUseAliPlayerForBGM;
1138 }
1139
1149 public void setEnableNarrowbandHDForScreenPusher(boolean enable) {
1150 enableNarrowbandHDForScreenPusher = enable;
1151 }
1152
1163 return enableNarrowbandHDForScreenPusher;
1164 }
1165
1173 return enableRTSForInteractiveMode;
1174 }
1175
1182 public void setEnableRTSForInteractiveMode(boolean enableRTSForInteractiveMode) {
1183 this.enableRTSForInteractiveMode = enableRTSForInteractiveMode;
1184 }
1185
1194 public int getMinFps() {
1195 return minFps.getFps();
1196 }
1197
1206 public void setMinFps(AlivcFpsEnum minFps) {
1207 this.minFps = minFps;
1208 }
1209
1217 return this.audioCodecType;
1218 }
1219
1226 public void setAudioCodecType(AlivcLiveAudioCodecType audioCodecType) {
1227 this.audioCodecType = audioCodecType;
1228 }
1229
1239 return audioProfile;
1240 }
1241
1250 public void setAudioProfile(AlivcAudioAACProfileEnum audioProfile) {
1251 this.audioProfile = audioProfile;
1252 }
1253
1260 public int getAudioBitRate() {
1261 return audioBitRate;
1262 }
1263
1270 public void setAudioBitRate(int audioBitRate) {
1271 this.audioBitRate = audioBitRate;
1272 }
1273
1285 return audioSceneMode;
1286 }
1287
1298 public void setAudioSceneMode(AlivcAudioSceneModeEnum audioSceneMode) {
1299 this.audioSceneMode = audioSceneMode;
1300 }
1301
1311 this.qualityMode = quality;
1312 }
1313
1323 return qualityMode;
1324 }
1325
1333 return mediaProjectionPermissionResultData;
1334 }
1335
1342 public static void setMediaProjectionPermissionResultData(Intent mediaProjectionPermissionResultData) {
1343 AlivcLivePushConfig.mediaProjectionPermissionResultData = mediaProjectionPermissionResultData;
1344 }
1345
1353 public boolean isEnableBitrateControl() {
1354 return enableBitrateControl;
1355 }
1356
1364 public void setEnableBitrateControl(boolean enableBitrateControl) {
1365 this.enableBitrateControl = enableBitrateControl;
1366 }
1367
1375 public boolean isEnableAutoResolution() {
1376 return enableAutoResolution;
1377 }
1378
1386 public void setEnableAutoResolution(boolean enableAutoResolution) {
1387 this.enableAutoResolution = enableAutoResolution;
1388 }
1389
1397 public boolean isExternMainStream() {
1398 return externMainStream;
1399 }
1400
1410 public void setExternMainStream(boolean externMainStream) {
1411 this.externMainStream = externMainStream;
1412 }
1413
1425 public void setExternMainStream(boolean externMainStream, AlivcImageFormat imageFormat, AlivcSoundFormat soundFormat) {
1426 this.externMainStream = externMainStream;
1427 mAlivcExternMainImageFormat = imageFormat;
1428 mAlivcExternMainSoundFormat = soundFormat;
1429 }
1430
1440 return mAlivcExternMainImageFormat;
1441 }
1442
1450 public void setAlivcExternMainImageFormat(AlivcImageFormat alivcExternMainImageFormat) {
1451 this.mAlivcExternMainImageFormat = alivcExternMainImageFormat;
1452 }
1453
1463 return mAlivcExternMainSoundFormat;
1464 }
1465
1475 this.mAlivcExternMainSoundFormat = soundFormat;
1476 }
1477
1487 return mPreviewDisplayMode;
1488 }
1489
1499 this.mPreviewDisplayMode = displayMode;
1500 }
1501
1510 public void setRequireRenderContextNotify(boolean enable) {
1511 this.requireGLSharedContext = enable;
1512 }
1513
1523 return this.requireGLSharedContext;
1524 }
1525
1533 public void setAudioCaptureWithoutMix(boolean on) {
1534 this.mAudioCaptureWithoutMix = on;
1535 }
1536
1544 public boolean getAudioCaptureWithoutMix() {
1545 return mAudioCaptureWithoutMix;
1546 }
1547
1560 @Deprecated
1561 public void addWaterMark(String path, float x, float y, float width) {
1562 WaterMarkInfo waterMarkInfo = new WaterMarkInfo();
1563 waterMarkInfo.mWaterMarkPath = path;
1564 waterMarkInfo.mWaterMarkCoordX = x;
1565 waterMarkInfo.mWaterMarkCoordY = y;
1566 waterMarkInfo.mWaterMarkWidth = width;
1567 if (waterMarkInfos.size() < 3) {
1568 waterMarkInfos.add(waterMarkInfo);
1569 }
1570 }
1571
1575 @Deprecated
1576 public void clearWaterMark() {
1577 waterMarkInfos.clear();
1578 }
1579
1585 @Deprecated
1586 public void removeWaterMark(String path) {
1587 for (WaterMarkInfo info : waterMarkInfos) {
1588 if (path != null && path.equals(info.mWaterMarkPath)) {
1589 waterMarkInfos.remove(info);
1590 break;
1591 }
1592 }
1593 }
1594
1601 public ArrayList<WaterMarkInfo> getWaterMarkInfos() {
1602 return waterMarkInfos;
1603 }
1604
1605 @Override
1606 public String toString() {
1607 return "AlivcLivePushConfig{" +
1608 "mLivePushMode=" + mLivePushMode +
1609 ", mResolution=" + mResolution +
1610 ", mTargetVideoBitrate=" + mTargetVideoBitrate +
1611 ", mMinVideoBitrate=" + mMinVideoBitrate +
1612 ", mInitialVideoBitrate=" + mInitialVideoBitrate +
1613 ", mFps=" + mFps +
1614 ", mVideoEncodeGop=" + mVideoEncodeGop +
1615 ", videoConfig=" + videoConfig +
1616 ", mBFrames=" + mBFrames +
1617 ", mPreviewOrientation=" + mPreviewOrientation +
1618 ", mPreviewRotation=" + mPreviewRotation +
1619 ", mPreviewDisplayMode=" + mPreviewDisplayMode +
1620 ", mCameraType=" + mCameraType +
1621 ", mPreviewMirror=" + mPreviewMirror +
1622 ", mPushMirror=" + mPushMirror +
1623 ", mAudioOnly=" + mAudioOnly +
1624 ", mVideoOnly=" + mVideoOnly +
1625 ", mAutoFocus=" + mAutoFocus +
1626 ", mFocusBySensor=" + mFocusBySensor +
1627 ", mFlash=" + mFlash +
1628 ", mConnectRetryCount=" + mConnectRetryCount +
1629 ", mConnectRetryInterval=" + mConnectRetryInterval +
1630 ", mPtsMaxDiff=" + mPtsMaxDiff +
1631 ", mMaxTimeoutCount=" + mMaxTimeoutCount +
1632 ", mVideoFormat=" + mVideoFormat +
1633 ", mAudioFormat=" + mAudioFormat +
1634 ", mAlivcExternMainImageFormat=" + mAlivcExternMainImageFormat +
1635 ", mAlivcExternMainSoundFormat=" + mAlivcExternMainSoundFormat +
1636 ", mExposure=" + mExposure +
1637 ", mUseAliPlayerForBGM=" + mUseAliPlayerForBGM +
1638 ", enableNarrowbandHDForScreenPusher=" + enableNarrowbandHDForScreenPusher +
1639 ", enableRTSForInteractiveMode=" + enableRTSForInteractiveMode +
1640 ", minFps=" + minFps +
1641 ", enableBitrateControl=" + enableBitrateControl +
1642 ", enableAutoResolution=" + enableAutoResolution +
1643 ", externMainStream=" + externMainStream +
1644 ", sendDataTimeout=" + sendDataTimeout +
1645 ", qualityMode=" + qualityMode +
1646 ", audioCodecType=" + audioCodecType +
1647 ", audioProfile=" + audioProfile +
1648 ", audioBitRate=" + audioBitRate +
1649 ", audioSceneMode=" + audioSceneMode +
1650 ", mAudioSampleRate=" + mAudioSampleRate +
1651 ", mAudioChannels=" + mAudioChannels +
1652 ", mAudioEncodeMode=" + mAudioEncodeMode +
1653 ", mVideoEncodeType=" + mVideoEncodeType +
1654 ", mVideoEncodeMode=" + mVideoEncodeMode +
1655 ", mVideoEncodeGop=" + mVideoEncodeGop +
1656 ", enableVideoCodecDowngrade=" + enableVideoCodecDowngrade +
1657 ", mPausePushImagePath='" + mPausePushImagePath + '\'' +
1658 ", mNetworkPoorPushImagePath='" + mNetworkPoorPushImagePath + '\'' +
1659 ", requireGLSharedContext=" + requireGLSharedContext +
1660 ", mAudioCaptureWithoutMix=" + mAudioCaptureWithoutMix +
1661 ", h5CompatibleMode=" + h5CompatibleMode +
1662 ", enableDataChannelMessage=" + enableDataChannelMessage +
1663 ", mExtraInfo='" + mExtraInfo + '\'' +
1664 ", mExtras=" + mExtras +
1665 ", userName='" + userName + '\'' +
1666 ", monitorLevel=" + monitorLevel +
1667 ", waterMarkInfos=" + waterMarkInfos +
1668 '}';
1669 }
1670} // end of live_pusher
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)
推流视频采集帧率
static AlivcFpsEnum fromValue(int value)
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)