private static void LibrariesHandlerAndroid(PlayerOptionsAndroid.PlayerTypes playerType) { var librariesPath = UMPSettings.PlatformLibraryPath(UMPSettings.Platforms.Android, false); List <string> libs = new List <string>(); libs.AddRange(Directory.GetFiles(librariesPath + "libs/armeabi-v7a")); libs.AddRange(Directory.GetFiles(librariesPath + "libs/x86")); var includeLibVLC = (playerType & PlayerOptionsAndroid.PlayerTypes.LibVLC) == PlayerOptionsAndroid.PlayerTypes.LibVLC; foreach (var lib in libs) { if (lib.Contains(".meta") && !lib.Contains("libUniversalMediaPlayer")) { File.SetAttributes(lib, FileAttributes.Normal); string metaData = File.ReadAllText(lib); var match = Regex.Match(metaData, @"Android.*\s*enabled:."); if (match.Success) { metaData = Regex.Replace(metaData, @"Android.*\s*enabled:." + (!includeLibVLC ? 1 : 0), match.Value + (includeLibVLC ? 1 : 0)); File.WriteAllText(lib, metaData); } } } libs.Clear(); var librariesNames = Enum.GetNames(typeof(PlayerOptionsAndroid.PlayerTypes)); libs.AddRange(Directory.GetFiles(librariesPath)); for (int i = 0; i < librariesNames.Length; i++) { var libraryPath = librariesPath + "Player" + librariesNames[i] + " "; var type = (PlayerOptionsAndroid.PlayerTypes)((i * 2) + (i == 0 ? 1 : 0)); var isEnable = (playerType & type) == type; File.SetAttributes(libraryPath, FileAttributes.Normal); string metaData = File.ReadAllText(libraryPath); var match = Regex.Match(metaData, @"Android.*\s*enabled:."); if (match.Success) { metaData = Regex.Replace(metaData, @"Android.*\s*enabled:." + (!isEnable ? 1 : 0), match.Value + (isEnable ? 1 : 0)); File.WriteAllText(libraryPath, metaData); } } libs.Clear(); }
private static void LibrariesHandler(UMPSettings.Platforms platform, Enum playerType) { if (!(playerType is PlayerOptionsAndroid.PlayerTypes) && !(playerType is PlayerOptionsIPhone.PlayerTypes)) { throw new ArgumentException("Enum must be one of this enumerated type: 'PlayerOptionsAndroid.PlayerTypes' or 'PlayerOptionsAndroid.PlayerTypes'"); } var libPath = UMPSettings.PlatformLibraryPath(platform, false); var playerValues = (int[])Enum.GetValues(playerType.GetType()); var usedLibs = new List <string>(); var flags = string.Empty; var addVLCLibs = false; if (playerType is PlayerOptionsAndroid.PlayerTypes) { addVLCLibs = ((PlayerOptionsAndroid.PlayerTypes)playerType & PlayerOptionsAndroid.PlayerTypes.LibVLC) == PlayerOptionsAndroid.PlayerTypes.LibVLC; } for (int i = 0; i < playerValues.Length; i++) { if (playerType is PlayerOptionsAndroid.PlayerTypes) { var type = (PlayerOptionsAndroid.PlayerTypes)playerValues[i]; if (((PlayerOptionsAndroid.PlayerTypes)playerType & type) == type) { usedLibs.Add(type.ToString()); } } if (playerType is PlayerOptionsIPhone.PlayerTypes) { var type = (PlayerOptionsIPhone.PlayerTypes)playerValues[i]; if (((PlayerOptionsIPhone.PlayerTypes)playerType & type) == type) { usedLibs.Add(type.ToString()); flags += " -D" + type.ToString().ToUpper(); } } } List <string> libs = new List <string>(); libs.AddRange(Directory.GetFiles(libPath)); if (playerType is PlayerOptionsAndroid.PlayerTypes) { libs.AddRange(Directory.GetFiles(libPath + "libs/armeabi-v7a")); libs.AddRange(Directory.GetFiles(libPath + "libs/x86")); } foreach (var lib in libs) { if (lib.Contains(".meta")) { var libName = Path.GetFileNameWithoutExtension(lib); var isEnable = false; foreach (var name in usedLibs) { if (libName.Contains("Player" + name) || libName.Contains("PlayerBase") || libName.Contains("MediaPlayer") || (addVLCLibs && libName.Contains("lib"))) { isEnable = true; } } File.SetAttributes(lib, FileAttributes.Normal); var attributes = File.ReadAllText(lib).Split(' '); var updatedData = string.Empty; var playerAttr = false; for (int i = 0; i < attributes.Length; i++) { foreach (var pluginPlatform in _pluginPlatforms) { if (attributes[i].Contains(pluginPlatform)) { if (pluginPlatform == platform.ToString()) { playerAttr = true; } else { playerAttr = false; } } } if (playerAttr) { //Ignore any compile flags from plugin file if (attributes[i].Contains("-D")) { continue; } if (attributes[i].Contains("enabled")) { attributes[i + 1] = (isEnable ? "1" : "0") + "\n"; } if (attributes[i].Contains("CompileFlags")) { attributes[i] = string.Format("CompileFlags:{0}\n", flags); } } updatedData += string.Format("{0} ", attributes[i]); } File.WriteAllText(lib, updatedData); } } libs.Clear(); }