From e5e41dec2d41651c7160662ecf43325d49b07b66 Mon Sep 17 00:00:00 2001
From: fctom1215 <fctom1215@outlook.com>
Date: 星期二, 10 三月 2020 21:51:00 +0800
Subject: [PATCH] 模拟夜间考试。

---
 lib/src/main/cpp/native-lib.cpp |   45 ++++++++++++---------------------------------
 1 files changed, 12 insertions(+), 33 deletions(-)

diff --git a/lib/src/main/cpp/native-lib.cpp b/lib/src/main/cpp/native-lib.cpp
index 69ef30e..e19a097 100644
--- a/lib/src/main/cpp/native-lib.cpp
+++ b/lib/src/main/cpp/native-lib.cpp
@@ -82,36 +82,6 @@
     return ciphertext_length;
 }
 
-void TextSpeak(const char *text)
-{
-    JNIEnv *env;
-    bool ready_in_java_env = false;
-
-    if (sg_jvm->GetEnv((void **)&env, JNI_VERSION_1_6) != JNI_OK) {
-        // Attach涓荤嚎绋�
-        if (sg_jvm->AttachCurrentThread(&env, NULL) != JNI_OK) {
-            LOGE("%s: AttachCurrentThread() failed", __FUNCTION__);
-            return;
-        }
-    } else {
-        ready_in_java_env = true;
-    }
-
-    jclass cls = env->GetObjectClass(sg_obj);
-    jmethodID fun = env->GetMethodID(cls, "TextSpeak", "(Ljava/lang/String;)V");
-
-    std::string cstext = text;
-    env->CallVoidMethod(sg_obj, fun, env->NewStringUTF(cstext.c_str()));
-    env->DeleteLocalRef(cls);
-
-    if (!ready_in_java_env) {
-        //Detach涓荤嚎绋�
-        if (sg_jvm->DetachCurrentThread() != JNI_OK) {
-            LOGE("%s: DetachCurrentThread() failed", __FUNCTION__);
-        }
-    }
-}
-
 void TextOsd(int type, const char *text)
 {
 /*    JNIEnv *env;
@@ -225,7 +195,7 @@
     }
 }
 
-void PlayTTS(const char *string)
+void PlayTTS(const char *string, int id)
 {
     DEBUG("PlayTTS: %s", string);
 
@@ -243,9 +213,9 @@
     }
 
     jclass cls = env->GetObjectClass(sg_obj);
-    jmethodID fun = env->GetMethodID(cls, "TextSpeak", "(Ljava/lang/String;)V");
+    jmethodID fun = env->GetMethodID(cls, "TextSpeak", "(Ljava/lang/String;I)V");
 
-    env->CallVoidMethod(sg_obj, fun, env->NewStringUTF(string));
+    env->CallVoidMethod(sg_obj, fun, env->NewStringUTF(string), id);
 
     env->DeleteLocalRef(cls);
 
@@ -266,6 +236,8 @@
     env->GetJavaVM(&sg_jvm);
     // 涓嶈兘鐩存帴璧嬪��(g_obj = ojb)
     sg_obj = env->NewGlobalRef(thiz);
+
+    srand(time(NULL));
 
     AppTimer_Init();
     ConfigMCU();
@@ -309,3 +281,10 @@
 
     env->ReleaseByteArrayElements(data, c_dat, NULL);
 }
+
+extern "C"
+JNIEXPORT void JNICALL
+Java_com_anyun_exam_lib_RemoteService_TextSpeakEnd(JNIEnv *env, jobject thiz, jint id) {
+    // TODO: implement TextSpeakEnd()
+    PlatformStatusChanged(PLAY_TTS_DONE_EVT, (uint8_t *)&id, sizeof(id));
+}

--
Gitblit v1.8.0