当前位置: 首页> 房产> 政策 > 唐山哪里有建设网站_solidworks永久免费版_南昌seo招聘信息_全国最新的疫情数据

唐山哪里有建设网站_solidworks永久免费版_南昌seo招聘信息_全国最新的疫情数据

时间:2025/7/10 9:23:58来源:https://blog.csdn.net/weixin_43041894/article/details/144874476 浏览次数:0次
唐山哪里有建设网站_solidworks永久免费版_南昌seo招聘信息_全国最新的疫情数据

I'm trying to develop Unreal Engine 4 plugin for Android camera API 2.

As I could read on unreal engine forums, there two possibilities to make a plugin for Android.

The first, consist on modifying the UE Android base project (GameActivity).

The second is a standalone plugin, which brings portability to add the plugins in any project.

According to this post, it is possible to make a camera Api1 standalone plugin, which uses APL.xml file to add java code.

But I think it is very limited to a Game activity, like the code below.

<?xml version="1.0" encoding="utf-8"?>
<!--ARToolKit plugin additions-->
<root xmlns:android="http://schemas.android.com/apk/res/android"><!-- init section is always evaluated once per architecture --><init><log text="AndroidCamera init"/></init><androidManifestUpdates><addPermission android:name="android.permission.CAMERA"/><addFeature android:name="android.hardware.camera"/><addFeature android:name="android.hardware.camera.autofocus"/></androidManifestUpdates><!-- optional additions to the GameActivity imports in GameActivity.java --><gameActivityImportAdditions><insert>
import android.widget.Toast;
import android.hardware.Camera;
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PreviewCallback;
import android.graphics.SurfaceTexture;
import android.graphics.ImageFormat;
import android.graphics.PixelFormat;
import java.util.List; 
import java.io.IOException;
import android.util.Log;</insert></gameActivityImportAdditions><gameActivityClassAdditions><insert>static String msg = "yes i am a rock!";SurfaceTexture surfaceTexture;Camera camera;public native boolean nativeGetFrameData(int frameWidth, int frameHeight, byte[] data);public void AndroidThunkJava_Toast(){try{_activity.runOnUiThread(new Runnable(){public void run(){Toast.makeText(_activity.getApplicationContext(), "cam o yeah!", Toast.LENGTH_SHORT).show();}});}catch (Exception e){Log.debug("Toast failed with exception " + e.getMessage());}}public void AndroidThunkJava_startCamera(){surfaceTexture = new SurfaceTexture(10);surfaceTexture.setDefaultBufferSize(320,240);camera = Camera.open();try { camera.setPreviewTexture(surfaceTexture);} catch (IOException t) {android.util.Log.e("ARToolKitLog", "Cannot set preview texture target!", t);} Parameters cameraParam = camera.getParameters();cameraParam.setPreviewFormat(ImageFormat.NV21);cameraParam.setPreviewSize(320, 240);camera.setParameters(cameraParam);camera.setPreviewCallback(new PreviewCallback() {@Overridepublic void onPreviewFrame(byte[] data, Camera camera) {int Height = camera.getParameters().getPreviewSize().height;int Width = camera.getParameters().getPreviewSize().width;nativeGetFrameData(Width, Height, data);}});camera.startPreview();}public void AndroidThunkJava_stopCamera(){if (camera != null) {camera.stopPreview();camera.release();camera = null;}}</insert></gameActivityClassAdditions><!-- optional additions to GameActivity onCreate in GameActivity.java --><gameActivityOnCreateAdditions><insert>//Toast.makeText(this,msg,Toast.LENGTH_LONG).show();//AndroidThunkJava_Toast();</insert></gameActivityOnCreateAdditions></root>

So my questions are:

Is this the only way to make a standalone plugin for Unreal Engine 4?

Is there a XML tag to add custom classes in this APL files?

  • android
  • unreal-engine4
  • android-camera2

I found another way to use custom Java classes:

If I am not wrong, the unreal engine _APL.xml file is connected with ANT build system.

So, as in _APL.xml files in addition to define Java code in gameActivityClassAdditions, there is a tag to copy our .java files to Unreal Engine build directory.

I have taken the idea from this Unreal Engine plugin: https://github.com/jeevcat/GoogleMapsUE4Plugin

So, I made a plugin in 4 steps:

  1. Copy the custom java classes to the plugin source directory with package folder order, so the resultant folder structure should be something like this. 

    enter image description here

2.- Add the prebuilt copies tag to apply the Java class into the build directory:

<prebuildCopies><copyDir src="$S(PluginDir)/Java" dst="$S(BuildDir)" />
</prebuildCopies>

3.- Add the imports in gameActivityImportAdditions:

import org.samples.camera2.CameraHandler;

4.- use custom class

           public void AndroidThunkJava_startCamera(){m_camHandler = new CameraHandler();m_camHandler.setCallback(new CameraCallback() {@Overridepublic void onGetFrame(byte[] data, int width, int height) {Log.d(LOG_TAG,"MY CUSTOM CALLBACK"+width);nativeGetFrameData(width, height, data);}});m_camHandler.init(_activity, 0, 320, 240);m_camHandler.start();}

Finally I show the resultant _APL.xml file:

<?xml version="1.0" encoding="utf-8"?>
<!--ARToolKit plugin additions-->
<root xmlns:android="http://schemas.android.com/apk/res/android"><!-- init section is always evaluated once per architecture --><init><log text="AndroidCamera init"/></init><androidManifestUpdates><addPermission android:name="android.permission.CAMERA"  /><addFeature android:name="android.hardware.camera"  /><addFeature android:name="android.hardware.camera.autofocus"  /><addFeature android:name="android.hardware.camera2" />
</androidManifestUpdates><prebuildCopies><copyDir src="$S(PluginDir)/Java" dst="$S(BuildDir)" />
</prebuildCopies><!-- optional additions to the GameActivity imports in GameActivity.java --><gameActivityImportAdditions><insert>
import android.widget.Toast;
import android.hardware.Camera;
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PreviewCallback;
import android.graphics.SurfaceTexture;
import android.graphics.ImageFormat;
import android.graphics.PixelFormat;
import java.util.List;
import java.io.IOException;
import android.util.Log;import org.samples.camera2.CameraHandler;
关键字:唐山哪里有建设网站_solidworks永久免费版_南昌seo招聘信息_全国最新的疫情数据

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: