$$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
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
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)
: 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()
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;