diff options
Diffstat (limited to 'src/plugins/android/src/wrappers/jni/androidmediarecorder.cpp')
-rw-r--r-- | src/plugins/android/src/wrappers/jni/androidmediarecorder.cpp | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/plugins/android/src/wrappers/jni/androidmediarecorder.cpp b/src/plugins/android/src/wrappers/jni/androidmediarecorder.cpp index 074f1c92b..2d2b6e2f3 100644 --- a/src/plugins/android/src/wrappers/jni/androidmediarecorder.cpp +++ b/src/plugins/android/src/wrappers/jni/androidmediarecorder.cpp @@ -113,7 +113,7 @@ AndroidCamcorderProfile::AndroidCamcorderProfile(const QJNIObjectPrivate &camcor m_camcorderProfile = camcorderProfile; } -static jclass g_qtMediaRecorderListenerClass = 0; +static const char QtMediaRecorderListenerClassName[] = "org/qtproject/qt5/android/multimedia/QtMediaRecorderListener"; typedef QMap<jlong, AndroidMediaRecorder*> MediaRecorderMap; Q_GLOBAL_STATIC(MediaRecorderMap, mediaRecorders) @@ -137,7 +137,7 @@ AndroidMediaRecorder::AndroidMediaRecorder() { m_mediaRecorder = QJNIObjectPrivate("android/media/MediaRecorder"); if (m_mediaRecorder.isValid()) { - QJNIObjectPrivate listener(g_qtMediaRecorderListenerClass, "(J)V", m_id); + QJNIObjectPrivate listener(QtMediaRecorderListenerClassName, "(J)V", m_id); m_mediaRecorder.callMethod<void>("setOnErrorListener", "(Landroid/media/MediaRecorder$OnErrorListener;)V", listener.object()); @@ -339,24 +339,20 @@ void AndroidMediaRecorder::setOutputFile(const QString &path) } } -static JNINativeMethod methods[] = { - {"notifyError", "(JII)V", (void *)notifyError}, - {"notifyInfo", "(JII)V", (void *)notifyInfo} -}; - bool AndroidMediaRecorder::initJNI(JNIEnv *env) { - jclass clazz = env->FindClass("org/qtproject/qt5/android/multimedia/QtMediaRecorderListener"); - if (env->ExceptionCheck()) - env->ExceptionClear(); + jclass clazz = QJNIEnvironmentPrivate::findClass(QtMediaRecorderListenerClassName, + env); + + static const JNINativeMethod methods[] = { + {"notifyError", "(JII)V", (void *)notifyError}, + {"notifyInfo", "(JII)V", (void *)notifyInfo} + }; - if (clazz) { - g_qtMediaRecorderListenerClass = static_cast<jclass>(env->NewGlobalRef(clazz)); - if (env->RegisterNatives(g_qtMediaRecorderListenerClass, - methods, - sizeof(methods) / sizeof(methods[0])) < 0) { + if (clazz && env->RegisterNatives(clazz, + methods, + sizeof(methods) / sizeof(methods[0])) != JNI_OK) { return false; - } } return true; |