From 08c773250c79c3092cd594204205f02de2cb6d46 Mon Sep 17 00:00:00 2001 From: MikkoAyaka <3401286177@qq.com> Date: Mon, 13 Nov 2023 17:02:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=9E=E7=8E=B0=E8=88=B5?= =?UTF-8?q?=E6=9C=BA=E8=BD=AC=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/build.gradle | 1 + src/app/src/main/AndroidManifest.xml | 3 - src/app/src/main/java/wificar/MyVideo.java | 92 +++++++++++---- src/app/src/main/java/wificar/RockerView.java | 4 +- .../main/res/drawable/progress_drawable.xml | 15 +++ src/app/src/main/res/drawable/red_circle.xml | 15 +++ src/app/src/main/res/layout/myvideo.xml | 110 ++++++++++-------- 7 files changed, 169 insertions(+), 71 deletions(-) create mode 100644 src/app/src/main/res/drawable/progress_drawable.xml create mode 100644 src/app/src/main/res/drawable/red_circle.xml diff --git a/src/app/build.gradle b/src/app/build.gradle index 2bd5b47..3193558 100644 --- a/src/app/build.gradle +++ b/src/app/build.gradle @@ -52,6 +52,7 @@ android { } dependencies { + implementation 'io.github.litao0621:nifty-slider:1.4.6' implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.8.0' diff --git a/src/app/src/main/AndroidManifest.xml b/src/app/src/main/AndroidManifest.xml index 734cc86..5bd5f89 100644 --- a/src/app/src/main/AndroidManifest.xml +++ b/src/app/src/main/AndroidManifest.xml @@ -7,12 +7,9 @@ - - - diff --git a/src/app/src/main/java/wificar/MyVideo.java b/src/app/src/main/java/wificar/MyVideo.java index d986129..da47d75 100644 --- a/src/app/src/main/java/wificar/MyVideo.java +++ b/src/app/src/main/java/wificar/MyVideo.java @@ -23,7 +23,9 @@ import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.ImageButton; +import android.widget.LinearLayout; import android.widget.RelativeLayout; +import android.widget.SeekBar; import android.widget.Toast; import java.io.File; @@ -48,6 +50,7 @@ public class MyVideo extends Activity { InputStream socketReader; SocketListener socketListener2001; SoundSocketListener socketListener2002; + SeekBar xSeekbar,ySeekbar; private Socket socket; private Socket soundSocket; private RockerView rockerView; @@ -56,6 +59,54 @@ public class MyVideo extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + + LinearLayout linearLayout = findViewById(R.id.linearLayout4); + xSeekbar = linearLayout.findViewById(R.id.xSeekbar); + ySeekbar = linearLayout.findViewById(R.id.ySeekbar); + + xSeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean b) { + try { + socketWriter.write(new byte[]{(byte) 0xff, (byte) 0x01, (byte) 0x07, (byte)((int)(progress * 1.8)), (byte) 0xff}); + socketWriter.flush(); + + } catch (IOException e) { + throw new RuntimeException(e); + } + } + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + }); + ySeekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean b) { + try { + socketWriter.write(new byte[]{(byte) 0xff, (byte) 0x01, (byte) 0x08, (byte)((int)(progress * 1.8)), (byte) 0xff}); + socketWriter.flush(); + + } catch (IOException e) { + throw new RuntimeException(e); + } + } + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + }); + this.requestWindowFeature(Window.FEATURE_NO_TITLE);//ȥ⣨ӦõֱҪдsetContentView֮ǰ쳣 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.myvideo); @@ -77,27 +128,28 @@ public class MyVideo extends Activity { } public void InitSocket(Activity activity) { - try { - socket = new Socket(InetAddress.getByName(CtrlIp), Integer.parseInt(CtrlPort)); - soundSocket = new Socket(InetAddress.getByName(CtrlIp), 2002); - } catch (UnknownHostException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - try { - socketWriter = socket.getOutputStream(); - socketReader = socket.getInputStream(); - socketListener2001 = new SocketListener(activity,socketReader); - socketListener2002 = new SoundSocketListener(activity,soundSocket.getInputStream()); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } + // TODO +// try { +// socket = new Socket(InetAddress.getByName(CtrlIp), Integer.parseInt(CtrlPort)); +// soundSocket = new Socket(InetAddress.getByName(CtrlIp), 2002); +// } catch (UnknownHostException e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } catch (Exception e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } +// try { +// socketWriter = socket.getOutputStream(); +// socketReader = socket.getInputStream(); +// socketListener2001 = new SocketListener(activity,socketReader); +// socketListener2002 = new SoundSocketListener(activity,soundSocket.getInputStream()); +// } catch (Exception e) { +// // TODO Auto-generated catch block +// e.printStackTrace(); +// } rockerView = new RockerView(this,socketWriter,this.getApplicationContext(),null); - RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(500,500); + RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(1000,1000); addContentView(rockerView,params); //Toast.makeText(this,"ʼʧܣ"+e.getMessage(),Toast.LENGTH_LONG).show(); } diff --git a/src/app/src/main/java/wificar/RockerView.java b/src/app/src/main/java/wificar/RockerView.java index b850327..f36a4ef 100644 --- a/src/app/src/main/java/wificar/RockerView.java +++ b/src/app/src/main/java/wificar/RockerView.java @@ -23,8 +23,8 @@ public class RockerView extends View{ Paint backPaint = new Paint(); // Paint bubblePaint = new Paint(); // ݻ Paint rectfPaint = new Paint(); - float bubbleX = 0, bubbleY = 0; // ݵλ - float backX = 0, backY = 0; // Բλ + float bubbleX = 300, bubbleY = 700; // ݵλ + float backX = 300, backY = 700; // Բλ int radiusBack = 200, radiusBubble = 100; // 屳ԲԼݵİ뾶 RectF mRectF = new RectF(backX-radiusBack,backY-radiusBack,backX+radiusBack,backY+radiusBack); Context mContext; diff --git a/src/app/src/main/res/drawable/progress_drawable.xml b/src/app/src/main/res/drawable/progress_drawable.xml new file mode 100644 index 0000000..7926606 --- /dev/null +++ b/src/app/src/main/res/drawable/progress_drawable.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/app/src/main/res/drawable/red_circle.xml b/src/app/src/main/res/drawable/red_circle.xml new file mode 100644 index 0000000..3ccb4ee --- /dev/null +++ b/src/app/src/main/res/drawable/red_circle.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/src/app/src/main/res/layout/myvideo.xml b/src/app/src/main/res/layout/myvideo.xml index 55fd409..3c98e47 100644 --- a/src/app/src/main/res/layout/myvideo.xml +++ b/src/app/src/main/res/layout/myvideo.xml @@ -1,6 +1,7 @@ - @@ -16,30 +17,74 @@ android:id="@+id/menuIcon" android:layout_width="60dp" android:layout_height="60dp" - android:layout_marginEnd="5dp" - android:layout_marginTop="5dp" - android:layout_alignParentEnd="true" android:text="菜单" - /> - + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="@+id/mySurfaceViewVideo" /> + app:layout_constraintEnd_toEndOf="@+id/mySurfaceViewVideo" + app:layout_constraintTop_toBottomOf="@+id/menuIcon"> + + + android:layout_height="match_parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent"/> + + + + + + + + + + + + android:layout_height="match_parent" + app:layout_constraintTop_toTopOf="parent" /> + android:gravity="right" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent"> + app:layout_constraintBottom_toTopOf="@+id/linearLayout2" + app:layout_constraintEnd_toEndOf="@+id/mySurfaceViewVideo"> + android:gravity="right" + app:layout_constraintBottom_toTopOf="@+id/linearLayout3" + app:layout_constraintEnd_toEndOf="@+id/mySurfaceViewVideo"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file