From 26a029d407be480d791972afb5975cf62c9360a6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 02:47:55 +0200 Subject: Adding upstream version 124.0.1. Signed-off-by: Daniel Baumann --- .../examples/unityplugin/ANDROID_INSTRUCTION | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 third_party/libwebrtc/examples/unityplugin/ANDROID_INSTRUCTION (limited to 'third_party/libwebrtc/examples/unityplugin/ANDROID_INSTRUCTION') diff --git a/third_party/libwebrtc/examples/unityplugin/ANDROID_INSTRUCTION b/third_party/libwebrtc/examples/unityplugin/ANDROID_INSTRUCTION new file mode 100644 index 0000000000..d5f7399bca --- /dev/null +++ b/third_party/libwebrtc/examples/unityplugin/ANDROID_INSTRUCTION @@ -0,0 +1,33 @@ +Instruction of running webrtc_unity_plugin on Android Unity + +1. On Linux machine, compile target webrtc_unity_plugin. + Checkout WebRTC codebase: fetch --nohooks webrtc_android + If you already have a checkout for linux, add target_os=”android” into .gclient file. + Run gclient sync + Run gn args out/Android, and again set target_os=”android” in the args.gn + Run ninja -C out/Android webrtc_unity_plugin + +2. On Linux machine, build target libwebrtc_unity under webrtc checkout. This is the java code for webrtc to work on Android. + +3. Copy libwebrtc_unity.jar and libwebrtc_unity_plugin.so into Unity project folder, under Assets/Plugins/Android folder. + +4. Rename libwebrtc_unity_plugin.so to libjingle_peerconnection_so.so. This is hacky, and the purpose is to let the java code in libwebrtc_unity.jar to find their JNI implementations. Simultaneously, in your C# wrapper script for the native plugin libjingle_peerconnection_so.so, the dll_path should be set to “jingle_peerconnection_so”. + +5. In the Unity Main Scene’s Start method, write the following code to initialize the Java environment for webrtc (otherwise, webrtc will not be able to access audio device or camera from C++ code): + +#if UNITY_ANDROID + AndroidJavaClass playerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); + AndroidJavaObject activity = playerClass.GetStatic("currentActivity"); + AndroidJavaClass utilityClass = new AndroidJavaClass("org.webrtc.UnityUtility"); + utilityClass.CallStatic("InitializePeerConncectionFactory", new object[1] { activity }); +#endif + +6. Compile the unity project into an APK, and decompile the apk using apktool that you can download from https://ibotpeaches.github.io/Apktool/ + Run apktool d apkname.apk. +Then copy the AndroidManifest.xml in the decompiled folder to the Assets/Plugins/Android folder, and add two lines: + + + +The purpose of using apktool is to get a well-written android manifest xml file. If you know how to write manifest file from scratch, you can skip using apktool. + +7. Compile the unity project into an APK again and deploy it to an android device. -- cgit v1.2.3