diff --git a/README.md b/README.md
index 4e854965..f4b65c3e 100644
--- a/README.md
+++ b/README.md
@@ -159,12 +159,15 @@
- 2、作为独立的流媒体服务器使用,不想做c/c++开发的,可以参考 [restful api](https://github.com/ZLMediaKit/ZLMediaKit/wiki/MediaServer支持的HTTP-API) 和 [web hook](https://github.com/ZLMediaKit/ZLMediaKit/wiki/MediaServer支持的HTTP-HOOK-API ).
- 3、如果想做c/c++开发,添加业务逻辑增加功能,可以参考这里的[测试程序](https://github.com/ZLMediaKit/ZLMediaKit/tree/master/tests).
+## 二进制文件下载
+zlmediakit采用 github action 持续集成自动编译打包上传编译产出包,请在[issue列表](https://github.com/ZLMediaKit/ZLMediaKit/issues/483)下载最新sdk库文件以及可执行文件。
+
## Docker 镜像
你可以从Docker Hub下载已经编译好的镜像并启动它:
```bash
-#此镜像为github持续集成自动编译推送,跟代码(master分支)保持最新状态
+#此镜像为github action 持续集成自动编译推送,跟代码(master分支)保持最新状态
docker run -id -p 1935:1935 -p 8080:80 -p 8443:443 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 9000:9000/udp zlmediakit/zlmediakit:master
```
diff --git a/README_en.md b/README_en.md
index 34294b4f..fe999fb7 100644
--- a/README_en.md
+++ b/README_en.md
@@ -367,7 +367,6 @@ bash build_docker_images.sh
- [Push client implemented based on C SDK](https://github.com/hctym1995/ZLM_ApiDemo)
- [Http API and Hook in C#](https://github.com/chengxiaosheng/ZLMediaKit.HttpApi)
- [RESTful client in DotNetCore](https://github.com/MingZhuLiu/ZLMediaKit.DotNetCore.Sdk)
-
- Player
- [Player supporting H265 based on wasm](https://github.com/numberwolf/h265web.js)
diff --git a/webrtc_player/android/.gitignore b/webrtc_player/android/.gitignore
deleted file mode 100644
index aa724b77..00000000
--- a/webrtc_player/android/.gitignore
+++ /dev/null
@@ -1,15 +0,0 @@
-*.iml
-.gradle
-/local.properties
-/.idea/caches
-/.idea/libraries
-/.idea/modules.xml
-/.idea/workspace.xml
-/.idea/navEditor.xml
-/.idea/assetWizardSettings.xml
-.DS_Store
-/build
-/captures
-.externalNativeBuild
-.cxx
-local.properties
diff --git a/webrtc_player/android/.idea/.gitignore b/webrtc_player/android/.idea/.gitignore
deleted file mode 100644
index 26d33521..00000000
--- a/webrtc_player/android/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/webrtc_player/android/.idea/.name b/webrtc_player/android/.idea/.name
deleted file mode 100644
index 377c1793..00000000
--- a/webrtc_player/android/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-RTCPlayer
\ No newline at end of file
diff --git a/webrtc_player/android/.idea/compiler.xml b/webrtc_player/android/.idea/compiler.xml
deleted file mode 100644
index b589d56e..00000000
--- a/webrtc_player/android/.idea/compiler.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/.idea/deploymentTargetDropDown.xml b/webrtc_player/android/.idea/deploymentTargetDropDown.xml
deleted file mode 100644
index 0c0c3383..00000000
--- a/webrtc_player/android/.idea/deploymentTargetDropDown.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/.idea/gradle.xml b/webrtc_player/android/.idea/gradle.xml
deleted file mode 100644
index 0897082f..00000000
--- a/webrtc_player/android/.idea/gradle.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/.idea/kotlinc.xml b/webrtc_player/android/.idea/kotlinc.xml
deleted file mode 100644
index 8d81632f..00000000
--- a/webrtc_player/android/.idea/kotlinc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/.idea/migrations.xml b/webrtc_player/android/.idea/migrations.xml
deleted file mode 100644
index f8051a6f..00000000
--- a/webrtc_player/android/.idea/migrations.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/.idea/misc.xml b/webrtc_player/android/.idea/misc.xml
deleted file mode 100644
index 8978d23d..00000000
--- a/webrtc_player/android/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/.idea/vcs.xml b/webrtc_player/android/.idea/vcs.xml
deleted file mode 100644
index b2bdec2d..00000000
--- a/webrtc_player/android/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/README.md b/webrtc_player/android/README.md
deleted file mode 100644
index b167a566..00000000
--- a/webrtc_player/android/README.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# RTCPlayer 播放器
-
-一个基于Android客户端的的RTC播放器
-
-## 项目特点
-
-- :white_check_mark:低延迟(200~500ms)
-- :white_check_mark:支持[ZLMediakit](https://github.com/ZLMediaKit/ZLMediaKit)流媒体
-- :black_square_button:支持[SRS](https://github.com/ossrs/srs)
-- :black_square_button:支持[Janus](https://github.com/meetecho/janus-gateway)
-
-如果您需要支持SRS或者Janus,请寻找下方联系我!
-
-
-
-
-
-
-
-## 延迟情况
-
-- **网页端推流,Android端播放**
-
-
-
-
-
-
-
-三次延迟分别为:490ms、526ms、560ms
-
-- **Android端推屏幕流,网页端播放**
-
-
-
-
-
-
-
-三次延迟分别为:440ms、430ms、387ms
-
-## 接口说明
-
-### Player
-
-- bind(surface: RTCSurfaceView)
-
- 绑定视图
-
-- play(app: String, streamId: String)
-
- 播放
-- setVolume(volume:Float)
-
- 设置音量,范围: 0.0~1.0f
-- stop()
-
- 停止播放
-- pause()
-
- 暂停播放
-- resume()
-
- 恢复播放
-- capture(listener: (bitmap: Bitmap) -> Unit)
-
- 截图
-- record(duration: Long, result: (path: String) -> Unit)
-
- 录制
-- setOnErrorListener(listener: (code: Int, msg: String) -> Unit)
-
- 设置播放器错误监听回调
-- setOnStatusListener(listener: (status: Status) -> Unit)
-
- 设置播放器状态回调
-
-### Pusher
-
-- bind(surface: RTCSurfaceView, localPreview: Boolean)
-
- 绑定视图
-
-- push(app: String, streamId: String, mode: PushMode = PushMode.CAMERA, inputFile: String = "")
-
- 推流,支持Camera、Screen、File
-
-- stop()
-
- 停止推流
-
-- setOnErrorListener(listener: (code: Int, msg: String) -> Unit)
-
- 设置播放器错误监听回调
-
-## 联系作者
-如果您需要深度二次开发,深度优化延迟,并支持其他流媒体服务,可以找我哦!
-[李之阳](https://github.com/leo94666)
-
-## 特别感谢
-
-感谢[ZLMediakit](https://github.com/ZLMediaKit/ZLMediaKit)开源项目
-
-同时感谢JetBrains对开源项目的支持,本项目使用Android Studio开发与调试:
-
-[](https://developer.android.com/studio?hl=zh-cn)
diff --git a/webrtc_player/android/app/.gitignore b/webrtc_player/android/app/.gitignore
deleted file mode 100644
index 42afabfd..00000000
--- a/webrtc_player/android/app/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/build
\ No newline at end of file
diff --git a/webrtc_player/android/app/build.gradle.kts b/webrtc_player/android/app/build.gradle.kts
deleted file mode 100644
index 9ca6cebf..00000000
--- a/webrtc_player/android/app/build.gradle.kts
+++ /dev/null
@@ -1,58 +0,0 @@
-plugins {
- id("com.android.application")
- id("org.jetbrains.kotlin.android")
-
-}
-
-android {
- namespace = "com.top.player"
- compileSdk = 34
-
- defaultConfig {
- applicationId = "com.top.player"
- minSdk = 24
- targetSdk = 34
- versionCode = 1
- versionName = "1.0"
-
- testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
-
- }
-
- buildTypes {
- release {
- isMinifyEnabled = false
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_1_8
- targetCompatibility = JavaVersion.VERSION_1_8
- }
- kotlinOptions {
- jvmTarget = "1.8"
- }
- viewBinding {
- enable = true
- }
-}
-
-dependencies {
-
- implementation("androidx.appcompat:appcompat:1.5.1")
- implementation("com.google.android.material:material:1.6.1")
- implementation("androidx.constraintlayout:constraintlayout:2.1.4")
- testImplementation("junit:junit:4.13.2")
- androidTestImplementation("androidx.test.ext:junit:1.1.3")
- androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
-
- implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22")
- implementation("com.guolindev.permissionx:permissionx:1.7.1")
-
- //implementation(project(":RTCPlayer"))
- implementation("com.rtc.core:RTCPlayer:1.0.0.beta")
-
-}
\ No newline at end of file
diff --git a/webrtc_player/android/app/proguard-rules.pro b/webrtc_player/android/app/proguard-rules.pro
deleted file mode 100644
index 481bb434..00000000
--- a/webrtc_player/android/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/androidTest/java/com/top/player/ExampleInstrumentedTest.java b/webrtc_player/android/app/src/androidTest/java/com/top/player/ExampleInstrumentedTest.java
deleted file mode 100644
index 2c5af40e..00000000
--- a/webrtc_player/android/app/src/androidTest/java/com/top/player/ExampleInstrumentedTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.top.player;
-
-import android.content.Context;
-
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.*;
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * @see Testing documentation
- */
-@RunWith(AndroidJUnit4.class)
-public class ExampleInstrumentedTest {
- @Test
- public void useAppContext() {
- // Context of the app under test.
- Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
- assertEquals("com.top.player", appContext.getPackageName());
- }
-}
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/AndroidManifest.xml b/webrtc_player/android/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 1e944e3c..00000000
--- a/webrtc_player/android/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/java/com/top/player/App.kt b/webrtc_player/android/app/src/main/java/com/top/player/App.kt
deleted file mode 100644
index 1c457ffd..00000000
--- a/webrtc_player/android/app/src/main/java/com/top/player/App.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.top.player
-
-import android.app.Application
-
-class App: Application() {
-
- override fun onCreate() {
- super.onCreate()
-
- }
-}
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/java/com/top/player/MainActivity.kt b/webrtc_player/android/app/src/main/java/com/top/player/MainActivity.kt
deleted file mode 100644
index 8cb2a7e5..00000000
--- a/webrtc_player/android/app/src/main/java/com/top/player/MainActivity.kt
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.top.player
-
-import android.content.Intent
-import android.os.Bundle
-import android.view.View
-import androidx.appcompat.app.AppCompatActivity
-
-class MainActivity : AppCompatActivity() {
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
-
- }
-
- fun toPlayActivity(view: View) {
- startActivity(Intent(this, PlayerDemoActivity::class.java))
- }
-
- fun toPushActivity(view: View) {
- startActivity(Intent(this, PusherDemoActivity::class.java))
-
- }
-
-}
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/java/com/top/player/PlayerDemoActivity.kt b/webrtc_player/android/app/src/main/java/com/top/player/PlayerDemoActivity.kt
deleted file mode 100644
index 50f810cb..00000000
--- a/webrtc_player/android/app/src/main/java/com/top/player/PlayerDemoActivity.kt
+++ /dev/null
@@ -1,112 +0,0 @@
-package com.top.player
-
-import android.os.Bundle
-import android.view.View
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
-import com.rtc.core.ZLMRTCPlayer
-import com.rtc.core.play.Status
-import com.rtc.core.play.ZLMRTCPlayerImpl
-import com.top.player.databinding.ActivityPlayerBinding
-
-
-class PlayerDemoActivity : AppCompatActivity() {
-
-
- private val player: ZLMRTCPlayer by lazy {
- ZLMRTCPlayerImpl(this)
- }
-
-
- private val binding by lazy {
- ActivityPlayerBinding.inflate(layoutInflater)
- }
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- setContentView(binding.root)
-
- //ffmpeg -re -stream_loop -1 -i "D:\li\hot\data\data\baseline.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp -bf 0 rtsp://zlmediakit.com/live/li
- //ffmpeg -re -stream_loop -1 -i "D:\li\hot\data\data\test.mp4" -vcodec h264 -acodec aac -f flv -bf 0 rtmp://zlmediakit.com/live/li
-
- setTitle("Player Demo")
- player.bind(binding.surfaceViewRender)
-
- player.setOnErrorListener { code, msg ->
- Toast.makeText(this, "code:$code,msg:${msg}", Toast.LENGTH_SHORT).show()
-
- }
-
- player.setOnStatusListener {
- when (it) {
- Status.PREPARING -> {
- binding.tvStatus.text = "准备播放"
- }
-
- Status.PLAYING -> {
- binding.tvStatus.text = "播放中.."
- }
-
- Status.PAUSE -> {
- binding.tvStatus.text = "暂停中.."
- }
-
- Status.RESUME -> {
- binding.tvStatus.text = "播放中.."
- }
-
- Status.STOP -> {
- binding.tvStatus.text = ""
- }
-
- Status.ERROR -> {
- binding.tvStatus.text = "播放异常"
- }
-
- else -> {}
- }
- }
-
- }
-
-
- override fun onDestroy() {
- super.onDestroy()
- player.stop()
- }
-
- fun onPlayClick(view: View) {
-
- player.play(binding.tvApp.text.toString(), binding.tvStreamId.text.toString())
- }
-
- fun onPauseClick(view: View) {
- player.pause()
- //Toast.makeText(this, "ok", Toast.LENGTH_SHORT).show()
- }
-
- fun onStopClick(view: View) {
- player.stop()
- }
-
- fun onResumeClick(view: View) {
- player.resume()
- }
-
- fun onCapture(view: View) {
- player.capture {
- Toast.makeText(this, "capture ok", Toast.LENGTH_SHORT).show()
- }
- }
-
- fun onRecord(view: View) {
- player.record(10 * 1000) {
- Toast.makeText(this, "" + it, Toast.LENGTH_SHORT).show()
- }
- }
-
- fun onVolume(view: View) {
- player.setVolume(0.0f)
- }
-}
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/java/com/top/player/PusherDemoActivity.kt b/webrtc_player/android/app/src/main/java/com/top/player/PusherDemoActivity.kt
deleted file mode 100644
index 168dafe5..00000000
--- a/webrtc_player/android/app/src/main/java/com/top/player/PusherDemoActivity.kt
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.top.player
-
-import android.Manifest
-import android.content.Intent
-import android.os.Bundle
-import android.view.View
-import android.widget.Toast
-import androidx.appcompat.app.AppCompatActivity
-import com.permissionx.guolindev.PermissionX
-import com.rtc.core.RTCSurfaceView
-import com.rtc.core.ZLMRTCPusher
-import com.rtc.core.push.PushMode
-import com.rtc.core.push.ZLMRTCPusherImpl
-import com.top.player.databinding.ActivityPlayerBinding
-import com.top.player.databinding.ActivityPusherBinding
-
-
-class PusherDemoActivity : AppCompatActivity() {
-
-
- private val pusher: ZLMRTCPusher by lazy {
- ZLMRTCPusherImpl(this)
- }
-
-
- private val binding by lazy {
- ActivityPusherBinding.inflate(layoutInflater)
- }
-
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- setContentView(R.layout.activity_pusher)
-
- val rtcSurfaceView = findViewById(R.id.surface_view_render)
-
- pusher.bind(rtcSurfaceView, true)
- setTitle("Pusher Demo")
-
-
- pusher.setOnErrorListener { code, msg ->
- Toast.makeText(this, "code:${code},msg:${msg}", Toast.LENGTH_SHORT).show()
- }
-
- }
-
- fun onPushCamera(view: View) {
- PermissionX.init(this)
- .permissions(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO)
- .request { allGranted, grantedList, deniedList ->
- if (allGranted) {
- pusher.push(binding.tvApp.text.toString(), binding.tvStreamId.text.toString())
- }
- }
- }
-
- fun onPushScreen(view: View) {
- PermissionX.init(this)
- .permissions(Manifest.permission.RECORD_AUDIO)
- .request { allGranted, grantedList, deniedList ->
- if (allGranted) {
- pusher.push(
- binding.tvApp.text.toString(),
- binding.tvStreamId.text.toString(),
- PushMode.SCREEN
- )
- }
- }
- }
-
- fun onPushFile(view: View) {
- PermissionX.init(this)
- .permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE)
- .request { allGranted, grantedList, deniedList ->
- if (allGranted) {
- pusher.push(
- binding.tvApp.text.toString(),
- binding.tvStreamId.text.toString(),
- PushMode.FILE,
- ""
- )
- }
- }
- }
-
- override fun onDestroy() {
- super.onDestroy()
- pusher.stop()
- }
-
- fun onStopPush(view: View) {
- pusher.stop()
- }
-
-
-}
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/drawable/ic_launcher_background.xml b/webrtc_player/android/app/src/main/res/drawable/ic_launcher_background.xml
deleted file mode 100644
index 07d5da9c..00000000
--- a/webrtc_player/android/app/src/main/res/drawable/ic_launcher_background.xml
+++ /dev/null
@@ -1,170 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/webrtc_player/android/app/src/main/res/drawable/ic_launcher_foreground.xml b/webrtc_player/android/app/src/main/res/drawable/ic_launcher_foreground.xml
deleted file mode 100644
index 2b068d11..00000000
--- a/webrtc_player/android/app/src/main/res/drawable/ic_launcher_foreground.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/layout/activity_main.xml b/webrtc_player/android/app/src/main/res/layout/activity_main.xml
deleted file mode 100644
index afb6529b..00000000
--- a/webrtc_player/android/app/src/main/res/layout/activity_main.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/layout/activity_player.xml b/webrtc_player/android/app/src/main/res/layout/activity_player.xml
deleted file mode 100644
index eebedc84..00000000
--- a/webrtc_player/android/app/src/main/res/layout/activity_player.xml
+++ /dev/null
@@ -1,140 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/layout/activity_pusher.xml b/webrtc_player/android/app/src/main/res/layout/activity_pusher.xml
deleted file mode 100644
index 484ee730..00000000
--- a/webrtc_player/android/app/src/main/res/layout/activity_pusher.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/webrtc_player/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
deleted file mode 100644
index 6f3b755b..00000000
--- a/webrtc_player/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/webrtc_player/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
deleted file mode 100644
index 6f3b755b..00000000
--- a/webrtc_player/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/webrtc_player/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp
deleted file mode 100644
index c209e78e..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/webrtc_player/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp
deleted file mode 100644
index b2dfe3d1..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/webrtc_player/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp
deleted file mode 100644
index 4f0f1d64..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/webrtc_player/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp
deleted file mode 100644
index 62b611da..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/webrtc_player/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp
deleted file mode 100644
index 948a3070..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/webrtc_player/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
deleted file mode 100644
index 1b9a6956..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/webrtc_player/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp
deleted file mode 100644
index 28d4b77f..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/webrtc_player/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9287f508..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/webrtc_player/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
deleted file mode 100644
index aa7d6427..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/webrtc_player/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
deleted file mode 100644
index 9126ae37..00000000
Binary files a/webrtc_player/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ
diff --git a/webrtc_player/android/app/src/main/res/values-night/themes.xml b/webrtc_player/android/app/src/main/res/values-night/themes.xml
deleted file mode 100644
index 79caf632..00000000
--- a/webrtc_player/android/app/src/main/res/values-night/themes.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/values/colors.xml b/webrtc_player/android/app/src/main/res/values/colors.xml
deleted file mode 100644
index c8524cd9..00000000
--- a/webrtc_player/android/app/src/main/res/values/colors.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- #FF000000
- #FFFFFFFF
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/values/strings.xml b/webrtc_player/android/app/src/main/res/values/strings.xml
deleted file mode 100644
index 5fb2987c..00000000
--- a/webrtc_player/android/app/src/main/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
- RTCPlayer
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/values/themes.xml b/webrtc_player/android/app/src/main/res/values/themes.xml
deleted file mode 100644
index df2c41fa..00000000
--- a/webrtc_player/android/app/src/main/res/values/themes.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/xml/backup_rules.xml b/webrtc_player/android/app/src/main/res/xml/backup_rules.xml
deleted file mode 100644
index fa0f996d..00000000
--- a/webrtc_player/android/app/src/main/res/xml/backup_rules.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/main/res/xml/data_extraction_rules.xml b/webrtc_player/android/app/src/main/res/xml/data_extraction_rules.xml
deleted file mode 100644
index 9ee9997b..00000000
--- a/webrtc_player/android/app/src/main/res/xml/data_extraction_rules.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/webrtc_player/android/app/src/test/java/com/top/player/ExampleUnitTest.java b/webrtc_player/android/app/src/test/java/com/top/player/ExampleUnitTest.java
deleted file mode 100644
index efe0b02d..00000000
--- a/webrtc_player/android/app/src/test/java/com/top/player/ExampleUnitTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.top.player;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * @see Testing documentation
- */
-public class ExampleUnitTest {
- @Test
- public void addition_isCorrect() {
- assertEquals(4, 2 + 2);
- }
-}
\ No newline at end of file
diff --git a/webrtc_player/android/build.gradle.kts b/webrtc_player/android/build.gradle.kts
deleted file mode 100644
index 2d2e5395..00000000
--- a/webrtc_player/android/build.gradle.kts
+++ /dev/null
@@ -1,6 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-plugins {
- id("com.android.application") version "8.2.2" apply false
- id("com.android.library") version "8.2.2" apply false
- id("org.jetbrains.kotlin.android") version "1.9.22" apply false
-}
\ No newline at end of file
diff --git a/webrtc_player/android/doc/delay_play1.jpg b/webrtc_player/android/doc/delay_play1.jpg
deleted file mode 100644
index 812a3dfd..00000000
Binary files a/webrtc_player/android/doc/delay_play1.jpg and /dev/null differ
diff --git a/webrtc_player/android/doc/delay_play2.jpg b/webrtc_player/android/doc/delay_play2.jpg
deleted file mode 100644
index c445a4f3..00000000
Binary files a/webrtc_player/android/doc/delay_play2.jpg and /dev/null differ
diff --git a/webrtc_player/android/doc/delay_play3.jpg b/webrtc_player/android/doc/delay_play3.jpg
deleted file mode 100644
index 49c58010..00000000
Binary files a/webrtc_player/android/doc/delay_play3.jpg and /dev/null differ
diff --git a/webrtc_player/android/doc/delay_push1.jpg b/webrtc_player/android/doc/delay_push1.jpg
deleted file mode 100644
index a73864c4..00000000
Binary files a/webrtc_player/android/doc/delay_push1.jpg and /dev/null differ
diff --git a/webrtc_player/android/doc/delay_push2.jpg b/webrtc_player/android/doc/delay_push2.jpg
deleted file mode 100644
index 4371e83a..00000000
Binary files a/webrtc_player/android/doc/delay_push2.jpg and /dev/null differ
diff --git a/webrtc_player/android/doc/delay_push3.jpg b/webrtc_player/android/doc/delay_push3.jpg
deleted file mode 100644
index 4b50ed48..00000000
Binary files a/webrtc_player/android/doc/delay_push3.jpg and /dev/null differ
diff --git a/webrtc_player/android/doc/home.jpg b/webrtc_player/android/doc/home.jpg
deleted file mode 100644
index 186a2482..00000000
Binary files a/webrtc_player/android/doc/home.jpg and /dev/null differ
diff --git a/webrtc_player/android/doc/player.jpg b/webrtc_player/android/doc/player.jpg
deleted file mode 100644
index bc695e6e..00000000
Binary files a/webrtc_player/android/doc/player.jpg and /dev/null differ
diff --git a/webrtc_player/android/doc/pusher.jpg b/webrtc_player/android/doc/pusher.jpg
deleted file mode 100644
index 710f528e..00000000
Binary files a/webrtc_player/android/doc/pusher.jpg and /dev/null differ
diff --git a/webrtc_player/android/gradle.properties b/webrtc_player/android/gradle.properties
deleted file mode 100644
index 3e927b11..00000000
--- a/webrtc_player/android/gradle.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-# Project-wide Gradle settings.
-# IDE (e.g. Android Studio) users:
-# Gradle settings configured through the IDE *will override*
-# any settings specified in this file.
-# For more details on how to configure your build environment visit
-# http://www.gradle.org/docs/current/userguide/build_environment.html
-# Specifies the JVM arguments used for the daemon process.
-# The setting is particularly useful for tweaking memory settings.
-org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
-# When configured, Gradle will run in incubating parallel mode.
-# This option should only be used with decoupled projects. More details, visit
-# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
-# org.gradle.parallel=true
-# AndroidX package structure to make it clearer which packages are bundled with the
-# Android operating system, and which are packaged with your app's APK
-# https://developer.android.com/topic/libraries/support-library/androidx-rn
-android.useAndroidX=true
-# Enables namespacing of each library's R class so that its R class includes only the
-# resources declared in the library itself and none from the library's dependencies,
-# thereby reducing the size of the R class for that library
-android.nonTransitiveRClass=true
\ No newline at end of file
diff --git a/webrtc_player/android/gradle/wrapper/gradle-wrapper.jar b/webrtc_player/android/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index e708b1c0..00000000
Binary files a/webrtc_player/android/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/webrtc_player/android/gradle/wrapper/gradle-wrapper.properties b/webrtc_player/android/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index 7325acda..00000000
--- a/webrtc_player/android/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Fri May 31 15:05:44 CST 2024
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
diff --git a/webrtc_player/android/gradlew b/webrtc_player/android/gradlew
deleted file mode 100644
index 4f906e0c..00000000
--- a/webrtc_player/android/gradlew
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/env sh
-
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=`expr $i + 1`
- done
- case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=`save "$@"`
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-exec "$JAVACMD" "$@"
diff --git a/webrtc_player/android/gradlew.bat b/webrtc_player/android/gradlew.bat
deleted file mode 100644
index 107acd32..00000000
--- a/webrtc_player/android/gradlew.bat
+++ /dev/null
@@ -1,89 +0,0 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/webrtc_player/android/settings.gradle.kts b/webrtc_player/android/settings.gradle.kts
deleted file mode 100644
index 742455a4..00000000
--- a/webrtc_player/android/settings.gradle.kts
+++ /dev/null
@@ -1,25 +0,0 @@
-pluginManagement {
- repositories {
- mavenCentral()
- gradlePluginPortal()
- google()
- }
-}
-dependencyResolutionManagement {
- repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
- repositories {
- mavenCentral()
- google()
- maven {
- credentials {
- username = ("6256cd6c7e8dbc28d896a661")
- password = ("KRuEgA3WYUVy")
- }
- url = uri("https://packages.aliyun.com/maven/repository/2302596-release-mpvXBR/")
- }
- }
-}
-
-rootProject.name = "RTCPlayer"
-include(":app")
-//include(":RTCPlayer")