JNI方面求帮助

zxrzhuo 2016-09-08 11:23:59
请问在android 中怎么新建 C++自定义类?
具体情况如下,我现在有一个头文件,里面定义了类
class IVideoFrameObserver
{
public:
enum VIDEO_FRAME_TYPE {
FRAME_TYPE_YUV420 = 0, //YUV 420 format
};
struct VideoFrame {
VIDEO_FRAME_TYPE type;
int width; //width of video frame
int height; //height of video frame
int yStride; //stride of Y data buffer
int uStride; //stride of U data buffer
int vStride; //stride of V data buffer
void* yBuffer; //Y data buffer
void* uBuffer; //U data buffer
void* vBuffer; //V data buffer
int rotation; // rotation of this frame (0, 90, 180, 270)
};
public:
virtual bool onCaptureVideoFrame(VideoFrame& videoFrame) = 0;
virtual bool onRenderVideoFrame(unsigned int uid, VideoFrame& videoFrame) = 0;
};

我想新建一个类继承它,然后重写里面的两个函数,例如这样
class AgoraVideoFrameObserver : public agora::media::IVideoFrameObserver
{
public:
virtual bool onCaptureVideoFrame(VideoFrame& videoFrame) override
{
return true;
}
virtual bool onRenderVideoFrame(unsigned int uid, VideoFrame& videoFrame) override
{
return true;
}
};
我是不是需要再新建一个头文件和.cpp文件,然后再编译一个.so文件才可以?
还有在android 里面怎么把它新建出来?因为我还需要把这个对象传给另一个本地函数。
...全文
249 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
网易云捕 2016-09-08
  • 打赏
  • 举报
回复
确实需要新建一个头文件和.cpp文件,然后再编译一个.so文件。 在android 里面java层要调用,必须先进行注册然后才能调用,具体有静态注册和动态注册.,然后在java层load so 再调用相关函数。 具体可以参考几个博客: http://wiki.jikexueyuan.com/project/deep-android-v1/jni.html http://blog.csdn.net/cc1949/article/details/14128399

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧