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