diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/android/jar/jar.pri | 2 | ||||
-rw-r--r-- | src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtMediaRecorderListener.java (renamed from src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtMediaRecorder.java) | 7 | ||||
-rw-r--r-- | src/plugins/android/src/wrappers/jmediarecorder.cpp | 20 |
3 files changed, 17 insertions, 12 deletions
diff --git a/src/plugins/android/jar/jar.pri b/src/plugins/android/jar/jar.pri index e56e3d966..d8bc59a72 100644 --- a/src/plugins/android/jar/jar.pri +++ b/src/plugins/android/jar/jar.pri @@ -10,7 +10,7 @@ JAVASOURCES += $$PWD/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlay $$PWD/src/org/qtproject/qt5/android/multimedia/QtSurfaceTextureListener.java \ $$PWD/src/org/qtproject/qt5/android/multimedia/QtSurfaceTextureHolder.java \ $$PWD/src/org/qtproject/qt5/android/multimedia/QtMultimediaUtils.java \ - $$PWD/src/org/qtproject/qt5/android/multimedia/QtMediaRecorder.java + $$PWD/src/org/qtproject/qt5/android/multimedia/QtMediaRecorderListener.java # install target.path = $$[QT_INSTALL_PREFIX]/jar diff --git a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtMediaRecorder.java b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtMediaRecorderListener.java index d76cd2221..5c8557e88 100644 --- a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtMediaRecorder.java +++ b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtMediaRecorderListener.java @@ -43,16 +43,13 @@ package org.qtproject.qt5.android.multimedia; import android.media.MediaRecorder; -public class QtMediaRecorder extends MediaRecorder implements MediaRecorder.OnErrorListener, MediaRecorder.OnInfoListener +public class QtMediaRecorderListener implements MediaRecorder.OnErrorListener, MediaRecorder.OnInfoListener { private long m_id = -1; - public QtMediaRecorder(long id) + public QtMediaRecorderListener(long id) { - super(); m_id = id; - setOnErrorListener(this); - setOnInfoListener(this); } @Override diff --git a/src/plugins/android/src/wrappers/jmediarecorder.cpp b/src/plugins/android/src/wrappers/jmediarecorder.cpp index 85267286c..675bc5dce 100644 --- a/src/plugins/android/src/wrappers/jmediarecorder.cpp +++ b/src/plugins/android/src/wrappers/jmediarecorder.cpp @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE -static jclass g_qtMediaRecorderClass = 0; +static jclass g_qtMediaRecorderListenerClass = 0; static QMap<jlong, JMediaRecorder*> g_objectMap; static void notifyError(JNIEnv* , jobject, jlong id, jint what, jint extra) @@ -68,9 +68,17 @@ JMediaRecorder::JMediaRecorder() : QObject() , m_id(reinterpret_cast<jlong>(this)) { - m_mediaRecorder = QJNIObjectPrivate(g_qtMediaRecorderClass, "(J)V", m_id); - if (m_mediaRecorder.isValid()) + m_mediaRecorder = QJNIObjectPrivate("android/media/MediaRecorder"); + if (m_mediaRecorder.isValid()) { + QJNIObjectPrivate listener(g_qtMediaRecorderListenerClass, "(J)V", m_id); + m_mediaRecorder.callMethod<void>("setOnErrorListener", + "(Landroid/media/MediaRecorder$OnErrorListener;)V", + listener.object()); + m_mediaRecorder.callMethod<void>("setOnInfoListener", + "(Landroid/media/MediaRecorder$OnErrorListener;)V", + listener.object()); g_objectMap.insert(m_id, this); + } } JMediaRecorder::~JMediaRecorder() @@ -271,13 +279,13 @@ static JNINativeMethod methods[] = { bool JMediaRecorder::initJNI(JNIEnv *env) { - jclass clazz = env->FindClass("org/qtproject/qt5/android/multimedia/QtMediaRecorder"); + jclass clazz = env->FindClass("org/qtproject/qt5/android/multimedia/QtMediaRecorderListener"); if (env->ExceptionCheck()) env->ExceptionClear(); if (clazz) { - g_qtMediaRecorderClass = static_cast<jclass>(env->NewGlobalRef(clazz)); - if (env->RegisterNatives(g_qtMediaRecorderClass, + g_qtMediaRecorderListenerClass = static_cast<jclass>(env->NewGlobalRef(clazz)); + if (env->RegisterNatives(g_qtMediaRecorderListenerClass, methods, sizeof(methods) / sizeof(methods[0])) < 0) { return false; |