Skip to content

Commit 987c134

Browse files
committed
Revert "修改传递的player弱引用"
This reverts commit f2683aa.
1 parent 1b3d54e commit 987c134

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import java.io.FileNotFoundException;
2525
import java.io.FileOutputStream;
2626
import java.io.IOException;
27-
import java.lang.ref.WeakReference;
2827
import java.util.ArrayList;
2928
import java.util.List;
3029
import java.util.concurrent.ExecutorService;
@@ -74,7 +73,7 @@ public class AudioRecordUtil implements EncoderListener, FLVListener {
7473

7574
private static final int SAVE_PCM_DATA = 1;
7675

77-
private WeakReference<IjkMediaPlayer> player;
76+
private IjkMediaPlayer player;
7877
private LinkedBlockingDeque<Byte> playPcmData = new LinkedBlockingDeque<>(); // 内存队列,用于缓存获取到的播放器音频pcm
7978

8079
private class MyHandler extends Handler {
@@ -231,7 +230,7 @@ public void setMode(VoiceChangerMode mode) {
231230
}
232231

233232
public void setPlayer(IjkMediaPlayer player) {
234-
this.player = new WeakReference<>(player);
233+
this.player = player;
235234
}
236235

237236
/**
@@ -388,7 +387,7 @@ public void run() {
388387
if (AudioRecord.ERROR_INVALID_OPERATION != read) {
389388
//获取到的pcm数据就是buffer了
390389
if (buffer != null && pcmEncoder != null) {
391-
if (player != null && player.get().isPlaying()) {
390+
if (player != null && player.isPlaying()) {
392391
byte [] playerPcmBytes = onReadPlayerPlayPcm(buffer.length);
393392
byte[] aecPcmBytes = GvoiceJNIBridge.cancellation(buffer, playerPcmBytes);
394393
if (isRecord) {
@@ -461,9 +460,9 @@ private class WriteThread extends Thread {
461460
@Override
462461
public void run() {
463462
while (recorderState) {
464-
if (player != null && player.get().isPlaying()) {
463+
if (player != null && player.isPlaying()) {
465464
byte[] data = new byte[204800];
466-
int len = player.get()._getPcmData(data);
465+
int len = player._getPcmData(data);
467466
if (len > 0) {
468467
byte[] playerBytes = new byte[len];
469468
System.arraycopy(data, 0, playerBytes, 0, len);

0 commit comments

Comments
 (0)