Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
livekitAndroidXuningTest
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
xuning
2025-10-10 08:50:29 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
ef58c4c7474a555b03bb2925f5b8f5a878575ec5
ef58c4c7
1 parent
31ee4978
启用ncnn提示成功并有新的问题
隐藏空白字符变更
内嵌
并排对比
正在显示
4 个修改的文件
包含
27 行增加
和
16 行删除
examples/virtual-background/build.gradle
examples/virtual-background/src/main/java/io/livekit/android/selfie/MainViewModel.kt
livekit-android-track-processors/build.gradle
livekit-android-track-processors/src/main/java/io/livekit/android/track/processing/video/RVMNcnn.java
examples/virtual-background/build.gradle
查看文件 @
ef58c4c
...
...
@@ -9,7 +9,7 @@ android {
defaultConfig
{
applicationId
"io.livekit.android.selfie"
minSdk
androidSdk
.
minVersion
minSdk
24
targetSdk
androidSdk
.
targetVersion
versionCode
1
versionName
"1.0"
...
...
examples/virtual-background/src/main/java/io/livekit/android/selfie/MainViewModel.kt
查看文件 @
ef58c4c
...
...
@@ -42,22 +42,14 @@ import livekit.org.webrtc.EglBase
@OptIn(ExperimentalCamera2Interop::class)
class MainViewModel(application: Application) : AndroidViewModel(application) {
val eglBase = EglBase.create()
private val processor = RVMNcnn(eglBase)
init {
LiveKit.loggingLevel = LoggingLevel.INFO
// 加载 RVM 模型:mobilenetv3,目标尺寸640(sizeid=6),intra/inter=0,postproc=1(fast),CPU(cpugpu=0)
// 如需 GPU,可将 cpugpu=1 或 2(使用 turnip)
processor.loadModel(
application.getAssets(),
/* modelid */ 0,
/* sizeid */ 6,
/* intrainterid */ 0,
/* postprocid */ 1,
/* cpugpu */ 0
)
}
val eglBase = EglBase.create()
val room = LiveKit.create(
application,
overrides = LiveKitOverrides(
...
...
@@ -68,7 +60,7 @@ class MainViewModel(application: Application) : AndroidViewModel(application) {
private val virtualBackground = (AppCompatResources.getDrawable(application, R.drawable.background) as BitmapDrawable).bitmap
private var blur = 16f
private val processor = RVMNcnn(eglBase)
private var cameraProvider: CameraCapturerUtils.CameraProvider? = null
...
...
livekit-android-track-processors/build.gradle
查看文件 @
ef58c4c
...
...
@@ -10,11 +10,16 @@ android {
compileSdkVersion
androidSdk
.
compileVersion
defaultConfig
{
minSdkVersion
androidSdk
.
minVersion
minSdkVersion
24
targetSdkVersion
androidSdk
.
targetVersion
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles
"consumer-rules.pro"
ndk
{
abiFilters
'arm64-v8a'
,
'x86_64'
// 如需兼容其它 ABI,可同时添加:'armeabi-v7a', 'x86', 'x86_64'
}
}
buildTypes
{
...
...
@@ -36,6 +41,12 @@ android {
includeAndroidResources
=
true
}
}
externalNativeBuild
{
cmake
{
path
file
(
'src/main/jni/CMakeLists.txt'
)
}
}
}
dokkaHtml
{
...
...
livekit-android-track-processors/src/main/java/io/livekit/android/track/processing/video/RVMNcnn.java
查看文件 @
ef58c4c
...
...
@@ -23,9 +23,15 @@ public class RVMNcnn extends NoDropVideoProcessor {
public
native
boolean
closeCamera
();
public
native
boolean
setOutputWindow
(
Surface
surface
);
public
native
boolean
setBackgroundImage
(
Bitmap
bitmap
);
public
native
boolean
processFrame
();
static
{
System
.
loadLibrary
(
"rvmncnn"
);
try
{
System
.
loadLibrary
(
"rvmncnn"
);
android
.
util
.
Log
.
d
(
"RVMNcnn"
,
"System.loadLibrary(rvmncnn) success"
);
}
catch
(
Throwable
t
)
{
android
.
util
.
Log
.
e
(
"RVMNcnn"
,
"System.loadLibrary(rvmncnn) failed"
,
t
);
}
}
private
final
EglBase
eglBase
;
...
...
@@ -55,6 +61,8 @@ public class RVMNcnn extends NoDropVideoProcessor {
@Override
public
void
onCapturerStarted
(
boolean
started
)
{
if
(
started
)
{
surfaceTextureHelper
.
setTextureSize
(
640
,
640
);
android
.
util
.
Log
.
d
(
"RVMNcnn"
,
"onCapturerStarted: setOutputWindow + openCamera"
);
// Listen to frames produced from the output surface (rendered by native),
// and forward to target sink.
surfaceTextureHelper
.
stopListening
();
...
...
请
注册
或
登录
后发表评论