Skip to content

Commit 23a0252

Browse files
committed
测试消除功能
1 parent 7c25490 commit 23a0252

File tree

5 files changed

+15
-11
lines changed

5 files changed

+15
-11
lines changed

sdk/video-link-android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ android {
4141
}
4242

4343
dependencies {
44-
// api fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
44+
api fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
4545
implementation 'com.google.code.gson:gson:2.8.9'
4646
testImplementation 'junit:junit:4.+'
4747
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
117 KB
Binary file not shown.

sdk/video-link-android/src/main/java/com/tencent/iot/video/link/util/audio/AudioRecordUtil.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515

1616
import com.iot.soundtouch.interfaces.SoundTouch;
1717
import com.iot.voice.changer.VoiceChangerJNIBridge;
18+
import com.neil.hy.aeclib4.AecLibJNIBridge;
1819
import com.tencent.iot.thirdparty.flv.FLVListener;
1920
import com.tencent.iot.thirdparty.flv.FLVPacker;
2021
import com.tencent.xnet.XP2P;
@@ -34,7 +35,7 @@
3435
import java.util.concurrent.Executors;
3536
import java.util.concurrent.LinkedBlockingDeque;
3637

37-
import com.iot.gvoice.interfaces.GvoiceJNIBridge;
38+
//import com.iot.gvoice.interfaces.GvoiceJNIBridge;
3839

3940

4041
public class AudioRecordUtil implements EncoderListener, FLVListener, Handler.Callback {
@@ -213,7 +214,9 @@ private void init(int sampleRate, int channel, int bitDepth) {
213214
recordMinBufferSize = (sampleRate * this.channelCount * this.encodeBit / 8) / 1000 * 20; //20ms数据长度
214215
Log.e(TAG, "20ms recordMinBufferSize is: " + recordMinBufferSize);
215216
Log.e(TAG, "AudioRecordUtil init Pitch is: " + pitch);
216-
GvoiceJNIBridge.init(context);
217+
// GvoiceJNIBridge.init(context);
218+
AecLibJNIBridge.getInstance().initAecm(sampleRate);
219+
AecLibJNIBridge.getInstance().setConfigAecm(3,40);
217220
}
218221

219222
private boolean isEnable8kEncode = false;
@@ -476,7 +479,8 @@ public void run() {
476479
if (buffer != null && pcmEncoder != null) {
477480
byte [] playerPcmBytes = onReadPlayerPlayPcm(buffer.length);
478481
if (playerPcmBytes != null && playerPcmBytes.length > 0) {
479-
byte[] aecPcmBytes = GvoiceJNIBridge.cancellation(buffer, playerPcmBytes);
482+
byte[] aecPcmBytes = AecLibJNIBridge.getInstance().cancellation(playerPcmBytes, buffer);
483+
Log.e(TAG, "aecPcmBytes aecPcmBytes.length: " + aecPcmBytes.length);
480484
if (isRecord) {
481485
writePcmBytesToFile(buffer, playerPcmBytes, aecPcmBytes);
482486
}

sdkdemo/src/main/java/com/tencent/iot/explorer/link/demo/video/preview/VideoPreviewActivity.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
274274
// audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, -6) // //变调可以传入pitch参数 // audioRecordUtil = AudioRecordUtil(this, "${it.productId}/${presenter.getDeviceName()}", 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, 0, this)
275275

276276
}
277-
// audioRecordUtil.recordSpeakFlv(true)
277+
audioRecordUtil?.recordSpeakFlv(true)
278278
if (isChecked && checkPermissions(permissions)) {
279279
if (!speakAble(true)) radioTalk.isChecked = false
280280
} else if (isChecked && !checkPermissions(permissions)) {
@@ -454,7 +454,7 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
454454
player.setOption(IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 50 * 1024)
455455
player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 0)
456456
player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 1)
457-
player.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "threads", 1)
457+
player.setOption(IjkMediaPlayer.OPT_CATEGORY_CODEC, "threads", 2)
458458
player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "sync-av-start", 0)
459459
player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec", 1)
460460
player.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-auto-rotate", 1)
@@ -464,6 +464,7 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
464464
1
465465
)
466466
player.setFrameSpeed(1.5f)
467+
player.setMaxPacketNum(10001)
467468
while (!::surface.isInitialized) {
468469
delay(50)
469470
L.e("delay for waiting surface.")
@@ -777,8 +778,8 @@ class VideoPreviewActivity : VideoPreviewBaseActivity<ActivityVideoPreviewBindin
777778
}
778779

779780
override fun onInfoAudioPcmData(mp: IMediaPlayer?, arrPcm: ByteArray?, length: Int) {
780-
// if (audioRecordUtil != null && length > 0 && speakAble) {
781-
// audioRecordUtil?.setPlayerPcmData(arrPcm);
782-
// }
781+
if (audioRecordUtil != null && length > 0 && speakAble) {
782+
audioRecordUtil?.setPlayerPcmData(arrPcm);
783+
}
783784
}
784785
}

sdkdemo/src/main/java/com/tencent/iot/explorer/link/demo/video/preview/VideoTestActivity.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -471,8 +471,7 @@ class VideoTestActivity : VideoBaseActivity<ActivityVideoTestBinding>(), XP2PCal
471471
player.setOption(
472472
IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec-handle-resolution-change", 1
473473
)
474-
player.setFrameSpeed(1.5f)
475-
player.setMaxPacketNum(2)
474+
player.setMaxPacketNum(10001)
476475
while (!::surface.isInitialized) {
477476
delay(50)
478477
L.e("delay for waiting surface.")

0 commit comments

Comments
 (0)