Dear frndz,
I am facing a problem of being not able to use the surface object
obtained from an activity class in the native side. Here is what i am
doing,
* Getting a SurfaceView object with the help of findviewbyId()
function.
* Then obtaining its SurfaceHolder by calling getHolder() function of
the surfaceView class.
* Then adding a callback to the holder, so as to know when the surface
is being created and destroyed.
* Once i get the callback of onSurfaceCreated(), i am getting the
surface object by getSurface() of the SurfaceHolder class and setting
it to a (Surface mSUrface = null ) field in the Activity class.
* From onSurfaceCreated() itself, I am calling a native function that
tries to access the mSurface object and casts it to sp<Surface>.
Here is my native function,
JNIEXPORT void JNICALL setSurface(JNIEnv* env,jobject thiz)
{
jfieldID surfacefieldID;
jfieldID surface_native;
Surface* p;
jclass clazz;
clazz = env->FindClass("com/example/SMFMediaPlayer/
SecondActivity");
if (clazz == NULL) {
LOGE("Can't find com/example/SMFMediaPlayer/SecondActivity
\n");
}
surfacefieldID = env->GetFieldID(clazz, "mSurface", "Landroid/view/
Surface;");
if (surfacefieldID == NULL) {
LOGE("Can't find MediaPlayer.mSurface\n");
}
jclass surface = env->FindClass("android/view/Surface");
if (surface == NULL) {
LOGE("Can't find android/view/Surface\n");
}
surface_native = env->GetFieldID(surface, "mSurface", "I");
if (surface_native == NULL) {
LOGE("Can't find Surface fields\n");
}
jobject surfaceobj = env->GetObjectField(thiz,surfacefieldID);
if (surfaceobj != NULL)
{
p = (Surface*) env->GetIntField(surfaceobj, surface_native);
if(p->isValid())
{
const sp<Surface>& native_Surface = sp<Surface>(p);
}
}
.
//There some more code down here
}
The problem here is that the execution is stopping at the
statement,"const sp<Surface>& native_Surface = sp<Surface>(p);".
I am not getting what is the mistake.
Actually i am using this code create my own media player. So i request
to let me know my mistake or an alternative way to access the surface
object. And also i need the SurfaceComposerClient object corresponding
the surface object.
SOmebody help me out.
Thanks You
Sandeep Patil
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en