From 92577ba1f1bc9a3e65a4ac215cb6f7ba59bc21de Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 6 Nov 2023 15:47:26 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E5=8D=87=E7=BA=A7=E5=A3=B0=E7=BD=91SD?= =?UTF-8?q?K=E5=88=B04.2.3=EF=BC=88=E5=8F=82=E8=80=83=E7=9A=84piko?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/proguard-rules.pro | 2 +- app/src/main/AndroidManifest.xml | 2 +- .../avroom/activity/RoomSettingActivity.java | 2 - core/build.gradle | 2 +- .../core/manager/AudioEngineManager.java | 2 +- .../manager/agora/EngineEventHandler.java | 14 +- .../core/manager/agora/RtcEngineHandler.java | 7 +- .../core/manager/agora/RtcEngineManager.java | 13 +- .../core/manager/trtc/BaseAdapterImpl.java | 59 +- .../trtc/BaseAgoraHandlerInterface.java | 4 +- .../core/manager/trtc/BaseAgoraInterface.java | 44 +- .../core/manager/trtc/TRTCEffectManager.java | 13 +- .../core/manager/trtc/TRTCEngineAdapter.java | 556 ++---------------- .../manager/trtc/TRtcEngineEventHandler.java | 6 +- .../core/manager/trtc/TRtcEngineHandler.java | 7 +- .../core/manager/trtc/TRtcEngineManager.java | 7 +- .../activity/CaptureVideoActivity.java | 1 - 17 files changed, 133 insertions(+), 608 deletions(-) diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index b59545f61..57db46fe1 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -460,4 +460,4 @@ # For BannerViewPager -keep class androidx.recyclerview.widget.** { *; } -keep class androidx.viewpager2.widget.** { *; } - +-keep class io.agora.**{*;} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d978857fe..32ec228cc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -66,7 +66,7 @@ android:protectionLevel="signature" /> - + diff --git a/app/src/main/java/com/nnbc123/app/avroom/activity/RoomSettingActivity.java b/app/src/main/java/com/nnbc123/app/avroom/activity/RoomSettingActivity.java index f908e415e..ac9e048ff 100644 --- a/app/src/main/java/com/nnbc123/app/avroom/activity/RoomSettingActivity.java +++ b/app/src/main/java/com/nnbc123/app/avroom/activity/RoomSettingActivity.java @@ -13,7 +13,6 @@ import android.widget.RelativeLayout; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; -import com.huawei.multimedia.audiokit.utils.LogUtils; import com.netease.nim.uikit.StatusBarUtil; import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder; import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage; @@ -54,7 +53,6 @@ import com.nnbc123.library.net.rxnet.callback.CallBack; import com.nnbc123.library.utils.CommonUtils; import com.nnbc123.library.utils.JavaUtil; import com.nnbc123.library.utils.ListUtils; -import com.nnbc123.library.utils.LogUtil; import com.nnbc123.library.utils.codec.DESUtils; import com.nnbc123.library.utils.config.BasicConfig; diff --git a/core/build.gradle b/core/build.gradle index 1ee93dbe6..6f5e03568 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -76,7 +76,7 @@ dependencies { api 'com.tencent.mm.opensdk:wechat-sdk-android:+' // 声网 - api 'io.agora.rtc:full-sdk:3.0.1' + api 'io.agora.rtc:voice-sdk:4.2.3' // core implementation 'com.liulishuo.okdownload:okdownload:1.0.4' diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/AudioEngineManager.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/AudioEngineManager.java index 35362efdc..8f71b55ed 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/AudioEngineManager.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/AudioEngineManager.java @@ -9,7 +9,7 @@ import com.nnbc123.core.room.bean.RoomAudioSdkType; import com.nnbc123.core.room.bean.RoomInfo; import com.nnbc123.core.utils.LogUtils; -import io.agora.rtc.Constants; +import io.agora.rtc2.Constants; public class AudioEngineManager { diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java index 1ed0d857d..8e7fd9e16 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java @@ -8,8 +8,9 @@ import com.nnbc123.core.manager.IMNetEaseManager; import com.nnbc123.core.manager.RoomEvent; import com.nnbc123.library.utils.SingleToastUtil; -import io.agora.rtc.Constants; -import io.agora.rtc.IRtcEngineEventHandler; +import io.agora.rtc2.ClientRoleOptions; +import io.agora.rtc2.Constants; +import io.agora.rtc2.IRtcEngineEventHandler; /** * @author by 梁馨 on 2020/9/14. @@ -121,8 +122,8 @@ public class EngineEventHandler extends IRtcEngineEventHandler { } @Override - public void onClientRoleChanged(int oldRole, int newRole) { - super.onClientRoleChanged(oldRole, newRole); + public void onClientRoleChanged(int oldRole, int newRole, ClientRoleOptions newRoleOptions) { + super.onClientRoleChanged(oldRole, newRole, newRoleOptions); //角色切换 麦克风切换 if (newRole == Constants.CLIENT_ROLE_BROADCASTER) { RtcEngineManager.get().setMute(RtcEngineManager.get().isMute); @@ -137,11 +138,6 @@ public class EngineEventHandler extends IRtcEngineEventHandler { ); } - @Override - public void onFirstLocalAudioFrame(int i) { - super.onFirstLocalAudioFrame(i); - } - @Override public void onRemoteAudioStateChanged(int i, int i1, int i2, int i3) { super.onRemoteAudioStateChanged(i, i1, i2, i3); diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineHandler.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineHandler.java index bd7e2a244..d4bb6e40b 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineHandler.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineHandler.java @@ -1,5 +1,7 @@ package com.nnbc123.core.manager.agora; +import static io.agora.rtc2.Constants.AUDIO_RECORDING_QUALITY_LOW; + import android.os.Environment; import android.os.Handler; import android.os.Message; @@ -16,10 +18,9 @@ import org.jetbrains.annotations.NotNull; import java.io.File; -import io.agora.rtc.Constants; -import io.agora.rtc.IRtcEngineEventHandler; +import io.agora.rtc2.Constants; +import io.agora.rtc2.IRtcEngineEventHandler; -import static io.agora.rtc.Constants.AUDIO_RECORDING_QUALITY_LOW; /** * @author by 梁馨 on 2020/9/14. diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineManager.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineManager.java index aca1289c3..f492cf1ee 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineManager.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineManager.java @@ -1,5 +1,8 @@ package com.nnbc123.core.manager.agora; +import static io.agora.rtc2.Constants.AUDIO_PROFILE_MUSIC_STANDARD; +import static io.agora.rtc2.Constants.AUDIO_SCENARIO_GAME_STREAMING; + import android.os.Environment; import android.os.Handler; import android.text.TextUtils; @@ -18,11 +21,9 @@ import com.nnbc123.library.utils.config.BasicConfig; import java.io.File; import java.util.Locale; -import io.agora.rtc.Constants; -import io.agora.rtc.RtcEngine; +import io.agora.rtc2.Constants; +import io.agora.rtc2.RtcEngine; -import static io.agora.rtc.Constants.AUDIO_PROFILE_MUSIC_STANDARD; -import static io.agora.rtc.Constants.AUDIO_SCENARIO_GAME_STREAMING; /** @@ -64,7 +65,7 @@ public class RtcEngineManager extends BaseEngine { mRtcEngine.setAudioProfile(AUDIO_PROFILE_MUSIC_STANDARD, AUDIO_SCENARIO_GAME_STREAMING); mRtcEngine.enableAudioVolumeIndication(600, 3, false); mRtcEngine.setDefaultAudioRoutetoSpeakerphone(true); - mRtcEngine.setExternalVideoSource(true, false, true); + mRtcEngine.setExternalVideoSource(true, false, Constants.ExternalVideoSourceType.ENCODED_VIDEO_FRAME); mRtcEngine.setRecordingAudioFrameParameters(48000, 2, 2, 960); mRtcEngine.setVideoProfile(Constants.VIDEO_PROFILE_360P, false); mRtcEngine.enableDualStreamMode(true); @@ -239,7 +240,7 @@ public class RtcEngineManager extends BaseEngine { mRtcEngine.stopAudioMixing(); int result; try { - result = mRtcEngine.startAudioMixing(filePath, loopback, false, cycle); + result = mRtcEngine.startAudioMixing(filePath, loopback, cycle); } catch (Exception e) { return -1; } diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAdapterImpl.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAdapterImpl.java index f324e9af9..f8762aaac 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAdapterImpl.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAdapterImpl.java @@ -6,24 +6,22 @@ import com.tencent.rtmp.ui.TXCloudVideoView; import com.tencent.trtc.TRTCCloud; import com.tencent.trtc.TRTCCloudDef; -import io.agora.rtc.IAudioEffectManager; -import io.agora.rtc.IAudioFrameObserver; -import io.agora.rtc.IMetadataObserver; -import io.agora.rtc.IRtcEngineEventHandler; -import io.agora.rtc.internal.LastmileProbeConfig; -import io.agora.rtc.live.LiveInjectStreamConfig; -import io.agora.rtc.live.LiveTranscoding; -import io.agora.rtc.mediaio.IVideoSink; -import io.agora.rtc.mediaio.IVideoSource; -import io.agora.rtc.models.UserInfo; -import io.agora.rtc.video.AgoraImage; -import io.agora.rtc.video.AgoraVideoFrame; -import io.agora.rtc.video.BeautyOptions; -import io.agora.rtc.video.CameraCapturerConfiguration; -import io.agora.rtc.video.ChannelMediaRelayConfiguration; -import io.agora.rtc.video.VideoCanvas; -import io.agora.rtc.video.VideoEncoderConfiguration; -import io.agora.rtc.video.WatermarkOptions; +import io.agora.rtc2.IAudioEffectManager; +import io.agora.rtc2.IAudioFrameObserver; +import io.agora.rtc2.IMetadataObserver; +import io.agora.rtc2.IRtcEngineEventHandler; +import io.agora.rtc2.UserInfo; +import io.agora.rtc2.internal.LastmileProbeConfig; +import io.agora.rtc2.live.LiveInjectStreamConfig; +import io.agora.rtc2.live.LiveTranscoding; +import io.agora.rtc2.video.AgoraImage; +import io.agora.rtc2.video.AgoraVideoFrame; +import io.agora.rtc2.video.BeautyOptions; +import io.agora.rtc2.video.CameraCapturerConfiguration; +import io.agora.rtc2.video.ChannelMediaRelayConfiguration; +import io.agora.rtc2.video.VideoCanvas; +import io.agora.rtc2.video.VideoEncoderConfiguration; +import io.agora.rtc2.video.WatermarkOptions; /** * 默认实现所有的IRTCEngine,避免两个adapter需要实现所有的接口 @@ -424,16 +422,6 @@ public class BaseAdapterImpl implements IRTCEngine { return 0; } - @Override - public int setLocalVoiceChanger(int voiceChanger) { - return 0; - } - - @Override - public int setLocalVoiceReverbPreset(int preset) { - return 0; - } - @Override public int enableSoundPositionIndication(boolean enabled) { return 0; @@ -559,21 +547,6 @@ public class BaseAdapterImpl implements IRTCEngine { return 0; } - @Override - public int setVideoSource(IVideoSource source) { - return 0; - } - - @Override - public int setLocalVideoRenderer(IVideoSink render) { - return 0; - } - - @Override - public int setRemoteVideoRenderer(int uid, IVideoSink render) { - return 0; - } - @Override public int setExternalAudioSink(boolean enabled, int sampleRate, int channels) { return 0; diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAgoraHandlerInterface.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAgoraHandlerInterface.java index 8fc5a4f3f..1c5252fc5 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAgoraHandlerInterface.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAgoraHandlerInterface.java @@ -2,8 +2,8 @@ package com.nnbc123.core.manager.trtc; import android.graphics.Rect; -import io.agora.rtc.IRtcEngineEventHandler; -import io.agora.rtc.models.UserInfo; +import io.agora.rtc2.IRtcEngineEventHandler; +import io.agora.rtc2.UserInfo; /** * 对齐IRtcEngineEventHandler的所有接口 diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAgoraInterface.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAgoraInterface.java index e5c26deff..3e20604e9 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAgoraInterface.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/BaseAgoraInterface.java @@ -1,23 +1,21 @@ package com.nnbc123.core.manager.trtc; -import io.agora.rtc.IAudioEffectManager; -import io.agora.rtc.IAudioFrameObserver; -import io.agora.rtc.IMetadataObserver; -import io.agora.rtc.IRtcEngineEventHandler; -import io.agora.rtc.internal.LastmileProbeConfig; -import io.agora.rtc.live.LiveInjectStreamConfig; -import io.agora.rtc.live.LiveTranscoding; -import io.agora.rtc.mediaio.IVideoSink; -import io.agora.rtc.mediaio.IVideoSource; -import io.agora.rtc.models.UserInfo; -import io.agora.rtc.video.AgoraImage; -import io.agora.rtc.video.AgoraVideoFrame; -import io.agora.rtc.video.BeautyOptions; -import io.agora.rtc.video.CameraCapturerConfiguration; -import io.agora.rtc.video.ChannelMediaRelayConfiguration; -import io.agora.rtc.video.VideoCanvas; -import io.agora.rtc.video.VideoEncoderConfiguration; -import io.agora.rtc.video.WatermarkOptions; +import io.agora.rtc2.IAudioEffectManager; +import io.agora.rtc2.IAudioFrameObserver; +import io.agora.rtc2.IMetadataObserver; +import io.agora.rtc2.IRtcEngineEventHandler; +import io.agora.rtc2.UserInfo; +import io.agora.rtc2.internal.LastmileProbeConfig; +import io.agora.rtc2.live.LiveInjectStreamConfig; +import io.agora.rtc2.live.LiveTranscoding; +import io.agora.rtc2.video.AgoraImage; +import io.agora.rtc2.video.AgoraVideoFrame; +import io.agora.rtc2.video.BeautyOptions; +import io.agora.rtc2.video.CameraCapturerConfiguration; +import io.agora.rtc2.video.ChannelMediaRelayConfiguration; +import io.agora.rtc2.video.VideoCanvas; +import io.agora.rtc2.video.VideoEncoderConfiguration; +import io.agora.rtc2.video.WatermarkOptions; /** * 接口类,和声网所有接口保持一致 @@ -146,10 +144,6 @@ public interface BaseAgoraInterface { int setLocalVoiceReverb(int reverbKey, int value); - int setLocalVoiceChanger(int voiceChanger); - - int setLocalVoiceReverbPreset(int preset); - int enableSoundPositionIndication(boolean enabled); int setRemoteVoicePosition(int uid, double pan, double gain); @@ -204,12 +198,6 @@ public interface BaseAgoraInterface { int stopLastmileProbeTest(); - int setVideoSource(IVideoSource source); - - int setLocalVideoRenderer(IVideoSink render); - - int setRemoteVideoRenderer(int uid, IVideoSink render); - int setExternalAudioSink(boolean enabled, int sampleRate, int channels); int pullPlaybackAudioFrame(byte[] data, int lengthInByte); diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRTCEffectManager.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRTCEffectManager.java index 6e73c3c01..a852bd755 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRTCEffectManager.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRTCEffectManager.java @@ -6,7 +6,8 @@ import com.tencent.trtc.TRTCCloud; import java.util.HashSet; import java.util.Set; -import io.agora.rtc.IAudioEffectManager; +import io.agora.rtc2.IAudioEffectManager; + /** * 音效的控制类 @@ -103,6 +104,11 @@ public class TRTCEffectManager implements IAudioEffectManager { return 0; } + @Override + public int playEffect(int soundId, String filePath, int loopCount, double pitch, double pan, double gain, boolean publish, int startPos) { + return 0; + } + @Override public int stopEffect(int soundId) { stopAudioEffect(soundId); @@ -120,6 +126,11 @@ public class TRTCEffectManager implements IAudioEffectManager { return 0; } + @Override + public int preloadEffect(int soundId, String filePath, int startPos) { + return 0; + } + @Override public int unloadEffect(int soundId) { return 0; diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRTCEngineAdapter.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRTCEngineAdapter.java index aca15ce7d..a0b561d9e 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRTCEngineAdapter.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRTCEngineAdapter.java @@ -32,22 +32,20 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; -import io.agora.rtc.IAudioEffectManager; -import io.agora.rtc.IAudioFrameObserver; -import io.agora.rtc.IMetadataObserver; -import io.agora.rtc.IRtcEngineEventHandler; -import io.agora.rtc.live.LiveTranscoding; -import io.agora.rtc.mediaio.IVideoFrameConsumer; -import io.agora.rtc.mediaio.IVideoSink; -import io.agora.rtc.mediaio.IVideoSource; -import io.agora.rtc.video.AgoraImage; -import io.agora.rtc.video.AgoraVideoFrame; -import io.agora.rtc.video.BeautyOptions; -import io.agora.rtc.video.CameraCapturerConfiguration; -import io.agora.rtc.video.ChannelMediaRelayConfiguration; -import io.agora.rtc.video.VideoCanvas; -import io.agora.rtc.video.VideoEncoderConfiguration; -import io.agora.rtc.video.WatermarkOptions; +import io.agora.rtc2.Constants; +import io.agora.rtc2.IAudioEffectManager; +import io.agora.rtc2.IAudioFrameObserver; +import io.agora.rtc2.IMetadataObserver; +import io.agora.rtc2.IRtcEngineEventHandler; +import io.agora.rtc2.live.LiveTranscoding; +import io.agora.rtc2.video.AgoraImage; +import io.agora.rtc2.video.AgoraVideoFrame; +import io.agora.rtc2.video.BeautyOptions; +import io.agora.rtc2.video.CameraCapturerConfiguration; +import io.agora.rtc2.video.ChannelMediaRelayConfiguration; +import io.agora.rtc2.video.VideoCanvas; +import io.agora.rtc2.video.VideoEncoderConfiguration; +import io.agora.rtc2.video.WatermarkOptions; import static com.tencent.liteav.audio.TXAudioEffectManager.TXVoiceChangerType.TXLiveVoiceChangerType_0; import static com.tencent.liteav.audio.TXAudioEffectManager.TXVoiceChangerType.TXLiveVoiceChangerType_1; @@ -91,59 +89,43 @@ import static com.tencent.trtc.TRTCCloudDef.TRTC_VIDEO_RESOLUTION_MODE_LANDSCAPE import static com.tencent.trtc.TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_BIG; import static com.tencent.trtc.TRTCCloudDef.TRTC_VIDEO_STREAM_TYPE_SMALL; import static com.tencent.trtc.TRTCCloudDef.VIDEO_QOS_CONTROL_SERVER; -import static io.agora.rtc.Constants.AUDIO_REVERB_HIPHOP; -import static io.agora.rtc.Constants.AUDIO_REVERB_KTV; -import static io.agora.rtc.Constants.AUDIO_REVERB_OFF; -import static io.agora.rtc.Constants.AUDIO_REVERB_POPULAR; -import static io.agora.rtc.Constants.AUDIO_REVERB_RNB; -import static io.agora.rtc.Constants.AUDIO_REVERB_ROCK; -import static io.agora.rtc.Constants.AUDIO_REVERB_STUDIO; -import static io.agora.rtc.Constants.AUDIO_REVERB_VOCAL_CONCERT; -import static io.agora.rtc.Constants.AUDIO_ROUTE_DEFAULT; -import static io.agora.rtc.Constants.AUDIO_ROUTE_EARPIECE; -import static io.agora.rtc.Constants.AUDIO_ROUTE_SPEAKERPHONE; -import static io.agora.rtc.Constants.CHANNEL_PROFILE_COMMUNICATION; -import static io.agora.rtc.Constants.CHANNEL_PROFILE_LIVE_BROADCASTING; -import static io.agora.rtc.Constants.CLIENT_ROLE_AUDIENCE; -import static io.agora.rtc.Constants.CLIENT_ROLE_BROADCASTER; -import static io.agora.rtc.Constants.LOG_FILTER_CRITICAL; -import static io.agora.rtc.Constants.LOG_FILTER_DEBUG; -import static io.agora.rtc.Constants.LOG_FILTER_ERROR; -import static io.agora.rtc.Constants.LOG_FILTER_INFO; -import static io.agora.rtc.Constants.LOG_FILTER_OFF; -import static io.agora.rtc.Constants.LOG_FILTER_WARNING; -import static io.agora.rtc.Constants.REMOTE_VIDEO_STATE_REASON_INTERNAL; -import static io.agora.rtc.Constants.REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED; -import static io.agora.rtc.Constants.REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED; -import static io.agora.rtc.Constants.REMOTE_VIDEO_STATE_STARTING; -import static io.agora.rtc.Constants.REMOTE_VIDEO_STATE_STOPPED; -import static io.agora.rtc.Constants.VIDEO_STREAM_HIGH; -import static io.agora.rtc.Constants.VIDEO_STREAM_LOW; -import static io.agora.rtc.Constants.VOICE_CHANGER_BABYBOY; -import static io.agora.rtc.Constants.VOICE_CHANGER_BABYGIRL; -import static io.agora.rtc.Constants.VOICE_CHANGER_ETHEREAL; -import static io.agora.rtc.Constants.VOICE_CHANGER_HULK; -import static io.agora.rtc.Constants.VOICE_CHANGER_OFF; -import static io.agora.rtc.Constants.VOICE_CHANGER_OLDMAN; -import static io.agora.rtc.Constants.VOICE_CHANGER_ZHUBAJIE; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_ADM_STOP_PLAYOUT; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_BITRATE_LIMIT; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_CONNECTION_INTERRUPTED; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_CONNECTION_LOST; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_FAILED; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_INVALID_APP_ID; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_INVALID_CHANNEL_NAME; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_JOIN_CHANNEL_REJECTED; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_OK; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_SIZE_TOO_LARGE; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_START_CAMERA; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_TOO_MANY_DATA_STREAMS; -import static io.agora.rtc.IRtcEngineEventHandler.ErrorCode.ERR_VDM_CAMERA_NOT_AUTHORIZED; -import static io.agora.rtc.IRtcEngineEventHandler.WarnCode.WARN_INVALID_VIEW; -import static io.agora.rtc.video.CameraCapturerConfiguration.CAMERA_DIRECTION.CAMERA_FRONT; -import static io.agora.rtc.video.VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_ADAPTIVE; -import static io.agora.rtc.video.VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_FIXED_LANDSCAPE; -import static io.agora.rtc.video.VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_FIXED_PORTRAIT; +import static io.agora.rtc2.Constants.AUDIO_ROUTE_DEFAULT; +import static io.agora.rtc2.Constants.AUDIO_ROUTE_EARPIECE; +import static io.agora.rtc2.Constants.AUDIO_ROUTE_SPEAKERPHONE; +import static io.agora.rtc2.Constants.CHANNEL_PROFILE_COMMUNICATION; +import static io.agora.rtc2.Constants.CHANNEL_PROFILE_LIVE_BROADCASTING; +import static io.agora.rtc2.Constants.CLIENT_ROLE_AUDIENCE; +import static io.agora.rtc2.Constants.CLIENT_ROLE_BROADCASTER; +import static io.agora.rtc2.Constants.LOG_FILTER_CRITICAL; +import static io.agora.rtc2.Constants.LOG_FILTER_DEBUG; +import static io.agora.rtc2.Constants.LOG_FILTER_ERROR; +import static io.agora.rtc2.Constants.LOG_FILTER_INFO; +import static io.agora.rtc2.Constants.LOG_FILTER_OFF; +import static io.agora.rtc2.Constants.LOG_FILTER_WARNING; +import static io.agora.rtc2.Constants.REMOTE_VIDEO_STATE_REASON_INTERNAL; +import static io.agora.rtc2.Constants.REMOTE_VIDEO_STATE_REASON_REMOTE_MUTED; +import static io.agora.rtc2.Constants.REMOTE_VIDEO_STATE_REASON_REMOTE_UNMUTED; +import static io.agora.rtc2.Constants.REMOTE_VIDEO_STATE_STARTING; +import static io.agora.rtc2.Constants.REMOTE_VIDEO_STATE_STOPPED; +import static io.agora.rtc2.Constants.VIDEO_STREAM_HIGH; +import static io.agora.rtc2.Constants.VIDEO_STREAM_LOW; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_ADM_STOP_PLAYOUT; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_BITRATE_LIMIT; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_CONNECTION_INTERRUPTED; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_CONNECTION_LOST; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_FAILED; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_INVALID_APP_ID; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_INVALID_CHANNEL_NAME; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_JOIN_CHANNEL_REJECTED; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_OK; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_SIZE_TOO_LARGE; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_TOO_MANY_DATA_STREAMS; +import static io.agora.rtc2.IRtcEngineEventHandler.ErrorCode.ERR_VDM_CAMERA_NOT_AUTHORIZED; +import static io.agora.rtc2.IRtcEngineEventHandler.WarnCode.WARN_INVALID_VIEW; +import static io.agora.rtc2.video.CameraCapturerConfiguration.CAMERA_DIRECTION.CAMERA_FRONT; +import static io.agora.rtc2.video.VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_ADAPTIVE; +import static io.agora.rtc2.video.VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_FIXED_LANDSCAPE; +import static io.agora.rtc2.video.VideoEncoderConfiguration.ORIENTATION_MODE.ORIENTATION_MODE_FIXED_PORTRAIT; /** * TRTC适配层 @@ -212,7 +194,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { tmpErrCode = ERR_CONNECTION_INTERRUPTED; break; case ERR_CAMERA_START_FAIL: - tmpErrCode = ERR_START_CAMERA; + tmpErrCode = Constants.ERR_VDM_CAMERA_NOT_AUTHORIZED; break; case ERR_PLAY_LIVE_STREAM_NET_DISCONNECT: tmpErrCode = ERR_CONNECTION_INTERRUPTED; @@ -675,32 +657,10 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { private long lastSecondSendStreamTime = 0; private long sendStreamSizeInSecond = 0; private int appScene = TRTC_APP_SCENE_VIDEOCALL; - private IVideoSink localVideoRender; - TRTCCloudListener.TRTCVideoRenderListener localVideoRenderlistener = new TRTCCloudListener.TRTCVideoRenderListener() { - - @Override - public void onRenderVideoFrame(String userId, int streamType, TRTCCloudDef.TRTCVideoFrame frame) { - switch (frame.bufferType) { - case TRTCCloudDef.TRTC_VIDEO_BUFFER_TYPE_BYTE_BUFFER:////BYTE_BUFFER - localVideoRender.consumeByteBufferFrame(frame.buffer, frame.pixelFormat, frame.width, frame.height, frame.rotation, frame.timestamp); - break; - case TRTCCloudDef.TRTC_VIDEO_BUFFER_TYPE_BYTE_ARRAY://BYTE_ARRAY - localVideoRender.consumeByteArrayFrame(frame.data, frame.pixelFormat, frame.width, frame.height, frame.rotation, frame.timestamp); - break; - case TRTCCloudDef.TRTC_VIDEO_BUFFER_TYPE_TEXTURE://TEXTURE - localVideoRender.consumeTextureFrame(frame.texture.textureId, frame.pixelFormat, frame.width, frame.height, frame.rotation, frame.timestamp, null); - break; - default: - break; - } - } - }; private int localVideoRenderBufferType; - private Map remoteVideoRenders = new HashMap(); private Map remoteVideoRenderBufferTypes = new HashMap(); private boolean enableExternalVideo = false; private boolean externalVideoUseTexture = false; - private IVideoSource videoSource; private VideoEncoderConfiguration videoEncoderConfiguration = new VideoEncoderConfiguration(); private boolean bBigVideoParamSet = false; private boolean bShouldSetSmallVideo = false; @@ -1033,15 +993,10 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { enableVideoFlag = true; lastSecondSendStreamTime = 0; sendStreamSizeInSecond = 0; - remoteVideoRenders.clear(); enableExternalVideo = false; onUserVideoAvailableCnt = 0; externalVideoUseTexture = false; remoteVideoAvaibleCnt.clear(); - if (videoSource != null) { - videoSource.onStop(); - videoSource.onDispose(); - } users.clear(); setLiveTransCodingFlag = false; isStartPreview = false; @@ -1245,77 +1200,6 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { return 0; } - @Override - public int setLocalVoiceChanger(int voiceChanger) { - if (!enableAudioFlag) { - return -1; - } - TXAudioEffectManager.TXVoiceChangerType trtcVoiceChangerType = TXLiveVoiceChangerType_0; - switch (voiceChanger) { - case VOICE_CHANGER_OFF://原声,即关闭本地语音变声 - trtcVoiceChangerType = TXLiveVoiceChangerType_0; - break; - case VOICE_CHANGER_OLDMAN://老男孩 - trtcVoiceChangerType = TXLiveVoiceChangerType_1; - break; - case VOICE_CHANGER_BABYBOY://小男孩 - trtcVoiceChangerType = TXLiveVoiceChangerType_2; - break; - case VOICE_CHANGER_BABYGIRL://小女孩 - trtcVoiceChangerType = TXLiveVoiceChangerType_3; - break; - case VOICE_CHANGER_ZHUBAJIE://猪八戒 - trtcVoiceChangerType = TXLiveVoiceChangerType_4; - break; - case VOICE_CHANGER_ETHEREAL://空灵 - trtcVoiceChangerType = TXLiveVoiceChangerType_5; - break; - case VOICE_CHANGER_HULK://绿巨人 - trtcVoiceChangerType = TXLiveVoiceChangerType_6; - break; - } - trtcCloud.getAudioEffectManager().setVoiceChangerType(trtcVoiceChangerType); - return 0; - } - - @Override - public int setLocalVoiceReverbPreset(int preset) { - if (!enableAudioFlag) { - return -1; - } - TXAudioEffectManager.TXVoiceReverbType trtcVoiceReverbType = TXLiveVoiceReverbType_0; - switch (preset) { - case AUDIO_REVERB_OFF: - trtcVoiceReverbType = TXLiveVoiceReverbType_0; - break; - case AUDIO_REVERB_POPULAR: - trtcVoiceReverbType = TXLiveVoiceReverbType_1; - break; - case AUDIO_REVERB_RNB: - trtcVoiceReverbType = TXLiveVoiceReverbType_2; - break; - case AUDIO_REVERB_ROCK: - trtcVoiceReverbType = TXLiveVoiceReverbType_3; - break; - case AUDIO_REVERB_HIPHOP: - trtcVoiceReverbType = TXLiveVoiceReverbType_4; - break; - case AUDIO_REVERB_VOCAL_CONCERT: - trtcVoiceReverbType = TXLiveVoiceReverbType_5; - break; - case AUDIO_REVERB_KTV: - trtcVoiceReverbType = TXLiveVoiceReverbType_6; - break; - case AUDIO_REVERB_STUDIO: - trtcVoiceReverbType = TXLiveVoiceReverbType_7; - break; - default: - break; - } - trtcCloud.getAudioEffectManager().setVoiceReverbType(trtcVoiceReverbType); - return 0; - } - @Override public int enableSoundPositionIndication(boolean enabled) { if (!enableAudioFlag) { @@ -1641,7 +1525,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { TRTCEngineAdapterListener.onError(WARN_INVALID_VIEW); return -1; } - localVideoView = new TXCloudVideoView(local.view); + localVideoView = new TXCloudVideoView(local.view.getContext()); isStartPreview = true; this.startPreview(); @@ -1662,8 +1546,8 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { remoteVideoMap.remove(remote.uid); return -1; } - remoteVideoMap.put(remote.uid, new TXCloudVideoView(remote.view)); - trtcCloud.startRemoteView(String.valueOf(remote.uid), new TXCloudVideoView(remote.view)); + remoteVideoMap.put(remote.uid, new TXCloudVideoView(remote.view.getContext())); + trtcCloud.startRemoteView(String.valueOf(remote.uid), new TXCloudVideoView(remote.view.getContext())); return 0; } @@ -1913,19 +1797,6 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { return null; } - @Override - public int setVideoSource(IVideoSource source) { - videoSource = source; - if (videoSource != null) { - trtcCloud.enableCustomVideoCapture(true); - videoSource.onInitialize(new TRTCVideoFrameConsumer()); - videoSource.onStart(); - } else { - return -1; - } - return 0; - } - @Override public void setExternalVideoSource(boolean enable, boolean useTexture, boolean pushMode) { LogUtils.d(TAG, " enable:" + enable + " useTexture:" + useTexture + " pushMode:" + pushMode); @@ -1991,7 +1862,7 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { frame.timestamp = videoFrame.timeStamp; frame.rotation = videoFrame.rotation; frame.texture.textureId = videoFrame.textureID; - frame.texture.eglContext10 = videoFrame.eglContext11; + frame.texture.eglContext10 = videoFrame.eglContext10; frame.texture.eglContext14 = videoFrame.eglContext14; trtcCloud.sendCustomVideoData(frame); } else { @@ -2006,131 +1877,6 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { return true; } - @Override - public int setLocalVideoRenderer(IVideoSink render) { - if (!enableVideoFlag || render == null) { - LogUtils.d(TAG, "setLocalVideoRenderer error enableVideoFlag:" + enableVideoFlag + " render:" + render); - return -1; - } - localVideoRender = render; - localVideoRenderBufferType = render.getBufferType(); - int pixelFormat; - int bufferType; - switch (render.getPixelFormat()) { - case 1://I420 - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_I420; - break; - case 3://NV21 - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_NV21; - break; - case 4://RGBA - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - case 10://TEXTURE_2D - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_Texture_2D; - break; - case 11://TEXTURE_OES - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_TEXTURE_EXTERNAL_OES; - break; - default: - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - - } - switch (render.getBufferType()) { - case 1://BYTE_BUFFER - bufferType = TRTC_VIDEO_BUFFER_TYPE_BYTE_BUFFER; - break; - case 2://BYTE_ARRAY - bufferType = TRTC_VIDEO_BUFFER_TYPE_BYTE_ARRAY; - break; - case 3://TEXTURE - bufferType = TRTC_VIDEO_BUFFER_TYPE_TEXTURE; - break; - default: - bufferType = TRTC_VIDEO_BUFFER_TYPE_UNKNOWN; - break; - - } - - trtcCloud.setLocalVideoRenderListener(pixelFormat, bufferType, localVideoRenderlistener); - return 0; - } - - @Override - public int setRemoteVideoRenderer(int uid, IVideoSink render) { - LogUtils.d(TAG, " uid:" + uid); - if (!enableVideoFlag) { - return -1; - } - TRTCCloudListener.TRTCVideoRenderListener remoteVideoRenderlistener = new TRTCCloudListener.TRTCVideoRenderListener() { - @Override - public void onRenderVideoFrame(String userId, int streamType, TRTCCloudDef.TRTCVideoFrame frame) { - try { - IVideoSink render = remoteVideoRenders.get(Integer.parseInt(userId)); - switch (localVideoRenderBufferType) { - case 1: - render.consumeByteBufferFrame(frame.buffer, frame.pixelFormat, frame.width, frame.height, frame.rotation, frame.timestamp); - break; - case 2: - render.consumeByteArrayFrame(frame.data, frame.pixelFormat, frame.width, frame.height, frame.rotation, frame.timestamp); - break; - case 3: - render.consumeTextureFrame(frame.texture.textureId, frame.pixelFormat, frame.width, frame.height, frame.rotation, frame.timestamp, null); - break; - default: - break; - - } - } catch (NumberFormatException e) { - LogUtils.d(TAG, "uid is not Integer type uid:" + userId); - return; - } - } - }; - int pixelFormat; - int bufferType; - switch (render.getPixelFormat()) { - case 1: - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_I420; - break; - case 3: - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_NV21; - break; - case 4: - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - case 10: - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_Texture_2D; - break; - case 11: - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_TEXTURE_EXTERNAL_OES; - break; - default: - pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - - } - switch (render.getBufferType()) { - case 1: - bufferType = TRTC_VIDEO_BUFFER_TYPE_BYTE_BUFFER; - break; - case 2: - bufferType = TRTC_VIDEO_BUFFER_TYPE_BYTE_ARRAY; - break; - case 3: - bufferType = TRTC_VIDEO_BUFFER_TYPE_TEXTURE; - break; - default: - bufferType = TRTC_VIDEO_BUFFER_TYPE_UNKNOWN; - break; - - } - remoteVideoRenders.put(uid, render); - trtcCloud.setRemoteVideoRenderListener(String.valueOf(uid), pixelFormat, bufferType, remoteVideoRenderlistener); - return 0; - } - @Override @Unsupport public int setExternalAudioSink(boolean enabled, int sampleRate, int channels) { @@ -2742,194 +2488,4 @@ public class TRTCEngineAdapter extends BaseAdapterImpl { } return 0; } - - public class TRTCVideoFrameConsumer implements IVideoFrameConsumer { - - @Override - public void consumeByteBufferFrame(ByteBuffer buffer, int format, int width, int height, int rotation, long timestamp) { - LogUtils.d(TAG, "format:" + format + "width:" + width + " height:" + height + " rotation:" + rotation + " timestamp:" + timestamp); - if (rotation == 90 || rotation == 270) { - checkEncoderConfiguration(height, width);//旋转之后宽高对调 - } else { - checkEncoderConfiguration(width, height);//0 ,180 旋转之后宽高不变 - } - TRTCCloudDef.TRTCVideoFrame frame = new TRTCCloudDef.TRTCVideoFrame(); - frame.bufferType = TRTCCloudDef.TRTC_VIDEO_BUFFER_TYPE_BYTE_BUFFER; - switch (format) { - case 1://I420 - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_I420; - break; - case 3://NV21 - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_NV21; - break; - case 4://RGBA - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - case 10://TEXTURE_2D - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_Texture_2D; - break; - case 11://TEXTURE_OES - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_TEXTURE_EXTERNAL_OES; - break; - default: - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - } - frame.buffer = buffer; - frame.width = width; - frame.height = height; - frame.timestamp = timestamp; - int tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - switch (rotation) { - case 0: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - break; - case 90: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_90; - break; - case 180: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_180; - break; - case 270: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_270; - break; - default: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - break; - } - frame.rotation = tmpRotation; - trtcCloud.sendCustomVideoData(frame); - } - - // File yuvfile = null; - // FileOutputStream outStream; - // void writeYUV(byte[] data){ - // try { - // if(null==yuvfile) { - // yuvfile = new File("/sdcard/9158.yuv"); - // outStream= new FileOutputStream(yuvfile); - // } - // outStream.write(data); - // } catch (IOException e) { - // LogUtils.d(TAG,"write yuv error"); - // } - // } - @Override - public void consumeByteArrayFrame(byte[] data, int format, int width, int height, int rotation, long timestamp) { - LogUtils.d(TAG, "format:" + format + "width:" + width + " height:" + height + " rotation:" + rotation + " timestamp:" + timestamp); - //writeYUV(data); - if (rotation == 90 || rotation == 270) { - checkEncoderConfiguration(height, width);//旋转之后宽高对调 - } else { - checkEncoderConfiguration(width, height);//0 ,180 旋转之后宽高不变 - } - TRTCCloudDef.TRTCVideoFrame frame = new TRTCCloudDef.TRTCVideoFrame(); - frame.bufferType = TRTCCloudDef.TRTC_VIDEO_BUFFER_TYPE_BYTE_ARRAY; - switch (format) { - case 1://I420 - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_I420; - break; - case 3://NV21 - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_NV21; - break; - case 4://RGBA - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - case 10://TEXTURE_2D - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_Texture_2D; - break; - case 11://TEXTURE_OES - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_TEXTURE_EXTERNAL_OES; - break; - default: - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - - } - - frame.data = data; - frame.width = width; - frame.height = height; - frame.timestamp = timestamp; - int tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - switch (rotation) { - case 0: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - break; - case 90: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_90; - break; - case 180: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_180; - break; - case 270: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_270; - break; - default: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - break; - } - frame.rotation = tmpRotation; - trtcCloud.sendCustomVideoData(frame); - } - - @Override - public void consumeTextureFrame(int textureId, int format, int width, int height, int rotation, long timestamp, float[] matrix) { - LogUtils.d(TAG, "format:" + format + "width:" + width + " height:" + height + " rotation:" + rotation + " timestamp:" + timestamp); - if (rotation == 90 || rotation == 270) { - checkEncoderConfiguration(height, width);//旋转之后宽高对调 - } else { - checkEncoderConfiguration(width, height);//0 ,180 旋转之后宽高不变 - } - TRTCCloudDef.TRTCVideoFrame frame = new TRTCCloudDef.TRTCVideoFrame(); - frame.bufferType = TRTCCloudDef.TRTC_VIDEO_BUFFER_TYPE_TEXTURE; - switch (format) { - case 1://I420 - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_I420; - break; - case 3://NV21 - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_NV21; - break; - case 4://RGBA - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - case 10://TEXTURE_2D - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_Texture_2D; - break; - case 11://TEXTURE_OES - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_TEXTURE_EXTERNAL_OES; - break; - default: - frame.pixelFormat = TRTC_VIDEO_PIXEL_FORMAT_UNKNOWN; - break; - } - frame.width = width; - frame.height = height; - frame.timestamp = timestamp; - frame.texture = new TRTCCloudDef.TRTCTexture(); - frame.texture.textureId = textureId; - //frame.texture.eglContext10 = ;//videoFrame.eglContext11; - frame.texture.eglContext14 = EGL14.eglGetCurrentContext();//videoFrame.eglContext14; - int tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - switch (rotation) { - case 0: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - break; - case 90: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_90; - break; - case 180: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_180; - break; - case 270: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_270; - break; - default: - tmpRotation = TRTCCloudDef.TRTC_VIDEO_ROTATION_0; - break; - } - frame.rotation = tmpRotation; - trtcCloud.sendCustomVideoData(frame); - } - } } diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineEventHandler.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineEventHandler.java index 3c10abef6..c52deec07 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineEventHandler.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineEventHandler.java @@ -14,9 +14,9 @@ import com.nnbc123.core.manager.RoomEvent; import com.nnbc123.core.manager.agora.RtcEngineHandler; import com.nnbc123.library.utils.SingleToastUtil; -import io.agora.rtc.Constants; -import io.agora.rtc.IRtcEngineEventHandler; -import io.agora.rtc.models.UserInfo; +import io.agora.rtc2.Constants; +import io.agora.rtc2.IRtcEngineEventHandler; +import io.agora.rtc2.UserInfo; /** * @author by 梁馨 on 2020/9/14. diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineHandler.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineHandler.java index 5f331bd36..506e778e2 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineHandler.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineHandler.java @@ -1,6 +1,7 @@ package com.nnbc123.core.manager.trtc; -import static io.agora.rtc.Constants.AUDIO_RECORDING_QUALITY_LOW; + +import static io.agora.rtc2.Constants.AUDIO_RECORDING_QUALITY_LOW; import android.os.Environment; import android.os.Handler; @@ -18,8 +19,8 @@ import org.jetbrains.annotations.NotNull; import java.io.File; -import io.agora.rtc.Constants; -import io.agora.rtc.IRtcEngineEventHandler; +import io.agora.rtc2.Constants; +import io.agora.rtc2.IRtcEngineEventHandler; /** * @author by 梁馨 on 2020/9/14. diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineManager.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineManager.java index 06103ee41..bcfabf60d 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineManager.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/trtc/TRtcEngineManager.java @@ -1,7 +1,8 @@ package com.nnbc123.core.manager.trtc; -import static io.agora.rtc.Constants.AUDIO_PROFILE_MUSIC_STANDARD; -import static io.agora.rtc.Constants.AUDIO_SCENARIO_GAME_STREAMING; + +import static io.agora.rtc2.Constants.AUDIO_PROFILE_MUSIC_STANDARD; +import static io.agora.rtc2.Constants.AUDIO_SCENARIO_GAME_STREAMING; import android.os.Handler; import android.text.TextUtils; @@ -19,7 +20,7 @@ import com.nnbc123.core.music.model.PlayerModel; import com.nnbc123.library.utils.config.BasicConfig; import com.orhanobut.logger.Logger; -import io.agora.rtc.Constants; +import io.agora.rtc2.Constants; /** diff --git a/nim_uikit/src/com/netease/nim/uikit/business/session/activity/CaptureVideoActivity.java b/nim_uikit/src/com/netease/nim/uikit/business/session/activity/CaptureVideoActivity.java index 2468e6a00..e91a4451a 100644 --- a/nim_uikit/src/com/netease/nim/uikit/business/session/activity/CaptureVideoActivity.java +++ b/nim_uikit/src/com/netease/nim/uikit/business/session/activity/CaptureVideoActivity.java @@ -460,7 +460,6 @@ public class CaptureVideoActivity extends UI implements SurfaceHolder.Callback { camera.unlock(); mediaRecorder.setCamera(camera); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); - mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); setCamcorderProfile(); From 16f8cf006a550fc29af40f76ff694d4688973c7b Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 6 Nov 2023 16:16:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat=EF=BC=9A=E5=A3=B0=E7=BD=91=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=EF=BC=88=E5=90=8C=E6=AD=A5piko=E7=9A=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E8=AE=B0=E5=BD=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nnbc123/core/manager/agora/EngineEventHandler.java | 3 +++ .../java/com/nnbc123/core/manager/agora/RtcEngineManager.java | 1 + 2 files changed, 4 insertions(+) diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java index 8e7fd9e16..93500ac73 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/EngineEventHandler.java @@ -102,6 +102,9 @@ public class EngineEventHandler extends IRtcEngineEventHandler { @Override public void onAudioVolumeIndication(AudioVolumeInfo[] speakers, int totalVolume) { super.onAudioVolumeIndication(speakers, totalVolume); + if (totalVolume == 0) { + return; + } RtcEngineManager manager = RtcEngineManager.get(); Message message = manager.mRtcEngineHandler.obtainMessage(); message.what = RtcEngineHandler.onAudioVolumeIndication; diff --git a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineManager.java b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineManager.java index f492cf1ee..50a203810 100644 --- a/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineManager.java +++ b/core/src/diff_src_erban/java/com/nnbc123/core/manager/agora/RtcEngineManager.java @@ -178,6 +178,7 @@ public class RtcEngineManager extends BaseEngine { return; } mRtcEngine.muteLocalAudioStream(mute); + mRtcEngine.enableLocalAudio(!mute); isMute = mute; }