From d6cc9656d2677b353cf88d296ddab4f6cfec8482 Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期日, 30 十一月 2025 13:14:25 +0800
Subject: [PATCH] 1.控制位,控制是否网络传输
---
app/src/main/java/com/anyun/h264/H264Encoder.java | 32 +++++++++++++++++++++++++++-----
1 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/app/src/main/java/com/anyun/h264/H264Encoder.java b/app/src/main/java/com/anyun/h264/H264Encoder.java
index bd233ee..632861b 100644
--- a/app/src/main/java/com/anyun/h264/H264Encoder.java
+++ b/app/src/main/java/com/anyun/h264/H264Encoder.java
@@ -34,6 +34,7 @@
* // 璁剧疆UDP鏈嶅姟鍣ㄥ湴鍧�锛堝彲閫夛級
* encoder.setServerAddress("192.168.1.100", 8888);
* encoder.setProtocolParams("123456789012", (byte)1);
+ * encoder.setEnableNetworkTransmission(true); // 鍚敤TCP/UDP缃戠粶浼犺緭锛宖alse琛ㄧず绂佺敤
*
* // 鍒濆鍖栧苟鍚姩
* int[] cameraIdRange = {0, 0};
@@ -73,6 +74,9 @@
private String outputFilePath;
private boolean enableFileOutput = false; // 鏄惁鍚敤鏂囦欢杈撳嚭
private boolean spsPpsWritten = false; // 鏍囪SPS/PPS鏄惁宸插啓鍏�
+
+ // 缃戠粶浼犺緭鎺у埗
+ private boolean enableNetworkTransmission = true; // 鏄惁鍚敤TCP/UDP缃戠粶浼犺緭
// 缂栫爜鍥炶皟
public interface OnFrameEncodedCallback {
@@ -134,6 +138,15 @@
}
/**
+ * 璁剧疆鏄惁鍚敤TCP/UDP缃戠粶浼犺緭
+ * @param enable true琛ㄧず鍚敤缃戠粶浼犺緭锛宖alse琛ㄧず绂佺敤
+ */
+ public void setEnableNetworkTransmission(boolean enable) {
+ this.enableNetworkTransmission = enable;
+ Log.d(TAG, "Network transmission " + (enable ? "enabled" : "disabled"));
+ }
+
+ /**
* 鍒濆鍖栨憚鍍忓ご鍜岀紪鐮佸櫒
*/
public boolean initialize(int[] cameraIdRange, String cameraName, int[] resolution, boolean ayCamera) {
@@ -180,8 +193,13 @@
initEncoder();
// 4. 鍒濆鍖朣ocket锛圲DP鎴朤CP锛屾牴鎹崗璁被鍨嬭嚜鍔ㄩ�夋嫨锛�
- if (!protocolHelper.initializeSocket()) {
- return false;
+ // 鍙湁鍦ㄥ惎鐢ㄧ綉缁滀紶杈撴椂鎵嶅垵濮嬪寲Socket
+ if (enableNetworkTransmission) {
+ if (!protocolHelper.initializeSocket()) {
+ return false;
+ }
+ } else {
+ Log.d(TAG, "Network transmission disabled, skipping socket initialization");
}
// 5. 鍒濆鍖栨枃浠惰緭鍑猴紙浠呭垱寤烘枃浠讹紝SPS/PPS鍦ㄧ涓�娆¤緭鍑烘椂鍐欏叆锛�
@@ -398,11 +416,9 @@
int outputBufferIndex = encoder.dequeueOutputBuffer(bufferInfo, 0);
while (outputBufferIndex >= 0) {
ByteBuffer outputBuffer = encoder.getOutputBuffer(outputBufferIndex);
- Log.i(TAG,"1111");
if (outputBuffer != null && bufferInfo.size > 0) {
// 妫�鏌ユ槸鍚︿负鍏抽敭甯�
boolean isKeyFrame = (bufferInfo.flags & MediaCodec.BUFFER_FLAG_KEY_FRAME) != 0;
- Log.i(TAG,"2222");
// 澶嶅埗缂栫爜鏁版嵁
byte[] encodedData = new byte[bufferInfo.size];
outputBuffer.position(bufferInfo.offset);
@@ -463,6 +479,11 @@
* 鍙戦�佺紪鐮佸悗鐨勬暟鎹紙鎸塉T/T 1076-2016鍗忚鎵撳寘锛�
*/
private void sendEncodedData(byte[] data, long timestamp, boolean isKeyFrame) {
+ // 濡傛灉鏈惎鐢ㄧ綉缁滀紶杈擄紝鐩存帴杩斿洖
+ if (!enableNetworkTransmission) {
+ return;
+ }
+
try {
// 璁$畻鏃堕棿闂撮殧
long currentTime = System.currentTimeMillis();
@@ -550,7 +571,8 @@
}
// 鍏抽棴Socket锛圲DP鎴朤CP锛屾牴鎹崗璁被鍨嬭嚜鍔ㄩ�夋嫨锛�
- if (protocolHelper != null) {
+ // 鍙湁鍦ㄥ惎鐢ㄧ綉缁滀紶杈撴椂鎵嶉渶瑕佸叧闂璖ocket
+ if (enableNetworkTransmission && protocolHelper != null) {
protocolHelper.closeSocket();
}
--
Gitblit v1.8.0