Skip to main content

android_media/
lib.rs

1mod constants;
2mod mic;
3mod player;
4
5use jni::{
6    JNIEnv,
7    errors::Error,
8    objects::{JClass, JObject},
9};
10pub use {constants::*, mic::*, player::*};
11
12//noinspection SpellCheckingInspection
13fn load_class<'a>(
14    env: &JNIEnv<'a>,
15    context: &JObject<'a>,
16    class_name: &'a str,
17) -> Result<JClass<'a>, Error> {
18    let mut env = unsafe { env.unsafe_clone() };
19    // 使用上下文对象获取 ClassLoader,并使用它来查找 Mic 类
20    let class_loader = env
21        .call_method(context, "getClassLoader", "()Ljava/lang/ClassLoader;", &[])?
22        .l()?;
23
24    // 使用 ClassLoader 加载
25    let class = env
26        .call_method(
27            class_loader,
28            "loadClass",
29            "(Ljava/lang/String;)Ljava/lang/Class;",
30            &[(&env.new_string(class_name)?).into()],
31        )?
32        .l()?;
33
34    Ok(class.into())
35}