在java中获取surfaceview,然后将native surface传递给jni,之后lock surface进行绘制。绘制部分代码是这样的:lockSurface(....)
{
Surface::SurfaceInfo info;
Region dirtyRegion; dirtyRegion.set(Rect(0x3FFF,0x3FFF));
mSurface->lock(&info,&diretyRegion,true);//mSurface为传递过来的native surface
.....
获得info.bits然后将图像数据memcpy到其中;
}unlockSurface(..)
{
mSurface->unlockAndPost();
}但是现在红色行,lock出错。ddms中错误为:
surface requtetBuffer returneda buffer with a null handle
getBufferLocked failed(Out of memeory)
dequeueBuffer failed(out of memeory)
unlockAndPost failed, no locked buffer我是在Eclair源码下编译的,各位遇到过这种问题么,请指点迷津
{
Surface::SurfaceInfo info;
Region dirtyRegion; dirtyRegion.set(Rect(0x3FFF,0x3FFF));
mSurface->lock(&info,&diretyRegion,true);//mSurface为传递过来的native surface
.....
获得info.bits然后将图像数据memcpy到其中;
}unlockSurface(..)
{
mSurface->unlockAndPost();
}但是现在红色行,lock出错。ddms中错误为:
surface requtetBuffer returneda buffer with a null handle
getBufferLocked failed(Out of memeory)
dequeueBuffer failed(out of memeory)
unlockAndPost failed, no locked buffer我是在Eclair源码下编译的,各位遇到过这种问题么,请指点迷津
解决方案 »
- eclipse工具加入android工程后只是该工程有红叉(其他包都没问题),控制台报错内容如下,请大侠解决?
- android 官方给出的最适合开发android的eclipse版本是哪个
- android锁屏后broadcastreceiver不工作
- 请教一个关于阻塞线程的终止问题
- 右边两个按钮并排靠右,左边一个按钮填满其他空间 用了layout_width="0dp" layout_weight="1"就可以了,这两人个是什么意思呢?
- 大家帮忙想下手机方面的idea和专利吧
- android强行开机启动的原理
- EditText光标的问题
- 机顶盒安卓系统与手机安卓系统的区别是什么?
- 如何实现点击FloatingActionButton以外的view关闭fab的菜单?
- windows下如何下载android源代码
- 重叠控件点击事件求解
static int setVideoSurface(AndroidPlayer* mp, JNIEnv *env, jobject thiz) {
jobject surface = env->GetObjectField(thiz, fields.surface);
if (surface != NULL) {
const sp<Surface> native_surface = get_surface(env, surface);
return mp->_setVideoSurface(native_surface);
} else {
return mp->_setVideoSurface(NULL);
}
}
struct fields_t {
jfieldID context;
jfieldID surface;
jfieldID surface_native;
};
static fields_t fields;static sp<Surface> get_surface(JNIEnv* env, jobject clazz) {
sp<Surface> p = (Surface*)env->GetIntField(clazz, fields.surface_native);
return p;
}应用中直接将surface_native直接赋给C代码中的surface就可以了,但是这样一直有问题。不知道还有人关注这个问题没