34 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 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<AndroidJavaObject>("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:
 | ||
|   <uses-permission android:name="android.permission.RECORD_AUDIO" />
 | ||
|   <uses-permission android:name="android.permission.CAMERA" />
 | ||
| 
 | ||
| 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.
 |