This commit is contained in:
rustdesk 2024-04-15 15:37:33 +08:00
parent cdd92303b8
commit 260d0cdc67
2 changed files with 24 additions and 22 deletions

View File

@ -1,6 +1,6 @@
package com.carriez.flutter_hbb
import ffi.*
import ffi.RustDesk
/**
* Capture screen,get video and audio,send to rust.
@ -195,7 +195,7 @@ class MainService : Service() {
override fun onCreate() {
super.onCreate()
Log.d(logTag,"MainService onCreate")
init(this)
RustDesk.init(this)
HandlerThread("Service", Process.THREAD_PRIORITY_BACKGROUND).apply {
start()
serviceLooper = looper
@ -207,7 +207,7 @@ class MainService : Service() {
// keep the config dir same with flutter
val prefs = applicationContext.getSharedPreferences(KEY_SHARED_PREFERENCES, FlutterActivity.MODE_PRIVATE)
val configPath = prefs.getString(KEY_APP_DIR_CONFIG_PATH, "") ?: ""
startServer(configPath)
RustDesk.startServer(configPath)
createForegroundNotification()
}
@ -262,7 +262,7 @@ class MainService : Service() {
SCREEN_INFO.dpi = dpi
if (isStart) {
stopCapture()
refreshScreen()
RustDesk.refreshScreen()
startCapture()
}
}
@ -290,7 +290,7 @@ class MainService : Service() {
createForegroundNotification()
if (intent.getBooleanExtra(EXT_INIT_FROM_BOOT, false)) {
startService()
RustDesk.startService()
}
Log.d(logTag, "service starting: ${startId}:${Thread.currentThread()}")
val mediaProjectionManager =
@ -343,7 +343,7 @@ class MainService : Service() {
val planes = image.planes
val buffer = planes[0].buffer
buffer.rewind()
onVideoFrameUpdate(buffer)
RustDesk.onVideoFrameUpdate(buffer)
}
} catch (ignored: java.lang.Exception) {
}
@ -377,16 +377,16 @@ class MainService : Service() {
}
checkMediaPermission()
_isStart = true
setFrameRawEnable("video",true)
setFrameRawEnable("audio",true)
RustDesk.setFrameRawEnable("video",true)
RustDesk.setFrameRawEnable("audio",true)
return true
}
@Synchronized
fun stopCapture() {
Log.d(logTag, "Stop Capture")
setFrameRawEnable("video",false)
setFrameRawEnable("audio",false)
RustDesk.setFrameRawEnable("video",false)
RustDesk.setFrameRawEnable("audio",false)
_isStart = false
// release video
virtualDisplay?.release()
@ -521,7 +521,7 @@ class MainService : Service() {
thread {
while (audioRecordStat) {
audioReader!!.readSync(audioRecorder!!)?.let {
onAudioFrameUpdate(it)
RustDesk.onAudioFrameUpdate(it)
}
}
Log.d(logTag, "Exit audio thread")

View File

@ -5,15 +5,17 @@ package ffi
import android.content.Context
import java.nio.ByteBuffer
init {
System.loadLibrary("rustdesk")
}
object RustDesk {
init {
System.loadLibrary("rustdesk")
}
external fun init(ctx: Context)
external fun startServer(app_dir: String)
external fun startService()
external fun onVideoFrameUpdate(buf: ByteBuffer)
external fun onAudioFrameUpdate(buf: ByteBuffer)
external fun translateLocale(localeName: String, input: String): String
external fun refreshScreen()
external fun setFrameRawEnable(name: String, value: Boolean)
external fun init(ctx: Context)
external fun startServer(app_dir: String)
external fun startService()
external fun onVideoFrameUpdate(buf: ByteBuffer)
external fun onAudioFrameUpdate(buf: ByteBuffer)
external fun translateLocale(localeName: String, input: String): String
external fun refreshScreen()
external fun setFrameRawEnable(name: String, value: Boolean)
}