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/MainActivity.kt  |    6 ++++--
 app/src/main/java/com/anyun/h264/H264Encoder.java |   32 +++++++++++++++++++++++++++-----
 2 files changed, 31 insertions(+), 7 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();
         }
 
diff --git a/app/src/main/java/com/anyun/h264/MainActivity.kt b/app/src/main/java/com/anyun/h264/MainActivity.kt
index 5d8e884..f70360f 100644
--- a/app/src/main/java/com/anyun/h264/MainActivity.kt
+++ b/app/src/main/java/com/anyun/h264/MainActivity.kt
@@ -66,10 +66,12 @@
             // 璁剧疆杈撳嚭鏂囦欢锛堝彲閫夛級
             val outputFile = File(getExternalFilesDir(null), "test.h264")
             h264Encoder?.setOutputFile(outputFile.absolutePath)
-            h264Encoder?.setEnableFileOutput(false) // 鍚敤鏂囦欢杈撳嚭
+            h264Encoder?.setEnableFileOutput(true) // 鍚敤鏂囦欢杈撳嚭
             
             // 璁剧疆UDP鏈嶅姟鍣ㄥ湴鍧�锛堝彲閫夛級
-             h264Encoder?.setServerAddress("58.48.93.67", 11935)
+//             h264Encoder?.setServerAddress("58.48.93.67", 11935)
+            h264Encoder?.setEnableNetworkTransmission(false)
+             h264Encoder?.setServerAddress("192.168.16.12", 11935)
              h264Encoder?.setProtocolParams("013120122580", 1)
             
             // 鍒濆鍖栧苟鍚姩

--
Gitblit v1.8.0