
sudo gem install cocoapods
pod init
platform :ios, '8.0'target 'App' dopod 'XMagic'end
platform :ios, '8.0'target 'App' dopod 'XMagic_Smart'end
#Please install the corresponding library with 'pod install' based on your package#For example: if your package is of type 'all', then you only need to use pod 'TencentEffect_All'.#For example: if your package is of type 'S1-04', then you only need to use pod 'TencentEffect_S1-04'.pod 'TencentEffect_All'#pod 'TencentEffect_A1-00'#pod 'TencentEffect_A1-01'#pod 'TencentEffect_A1-02'#pod 'TencentEffect_A1-03'#pod 'TencentEffect_A1-04'#pod 'TencentEffect_A1-05'#pod 'TencentEffect_A1-06'#pod 'TencentEffect_S1-00'#pod 'TencentEffect_S1-01'#pod 'TencentEffect_S1-02'#pod 'TencentEffect_S1-03'#pod 'TencentEffect_S1-04'#pod 'TencentEffect_S1-05'#pod 'TencentEffect_S1-06'#pod 'TencentEffect_S1-07'#pod 'TencentEffect_X1-01'#pod 'TencentEffect_X1-02'
pod install
-ObjC to Other Linker Flags.frameworks folder, and the bundle resources are in resources.frameworks folder to your project: Choose the target to run, select the General tab, expand Frameworks, Libraries, and Embedded Content, and click + to add the frameworks downloaded, including XMagic.framework, YTCommonXMagic.framework, and libpag.framework, as well as MetalPerformanceShaders.framework, CoreTelephony.framework, JavaScriptCore.framework, VideoToolbox.framework, and libc++.tbd. You can also add Masonry.framework (control layout) and SSZipArchive (file decompression) if necessary.

frameworks folder to your project: Choose the target to run, select the General tab, expand Frameworks, Libraries, and Embedded Content, and click + to add the frameworks downloaded, including XMagic.framework, YTCommonXMagic.framework, libpag.framework, Audio2Exp.framework, and TEFFmpeg.framework(Renamed to TECodec.framework after version 3.0.0.), as well as MetalPerformanceShaders.framework, CoreTelephony.framework, JavaScriptCore.framework, VideoToolbox.framework, and libc++.tbd. If necessary, you can also add Masonry.framework (control layout) and SSZipArchive (file decompression).
resources folder to your project.-ObjC to Other Linker Flags.MotionRes, not available in some basic editions of the SDK) from a URL and, after download, pass the path of the resources to the SDK.Info.plist file. If you don’t do so, the application will crash on iOS 10. Grant the application camera access in Privacy - Camera Usage Description.LicenseURL and LicenseKEY, refer to Activate the Service.didFinishLaunchingWithOptions method of AppDelegate (the values of LicenseURL and LicenseKey are generated when you bound the license in the console).TELicenseCheck.h in XMagic.framework; if your SDK version is 2.5.1 or later, TELicenseCheck.h is inYTCommonXMagic.framework.[TELicenseCheck setTELicense:LicenseURL key:LicenseKey completion:^(NSInteger authresult, NSString * _Nonnull errorMsg) {if (authresult == TELicenseCheckOk) {NSLog(@"Authentication successful");} else {NSLog(@"Authentication failed");}}];
Error Codes | Description |
0 | Successful. |
-1 | The input parameter is invalid; for example, the URL or KEY is empty. |
-3 | Download failed. Check the network settings. |
-4 | Unable to obtain any Tencent Effect authentication information from the local system, which may be caused by an I/O failure. |
-5 | The VCUBE TEMP license file is empty, which may be caused by an I/O failure. |
-6 | The JSON field in the v_cube.license file is incorrect. Please contact Tencent Cloud team for help. |
-7 | Signature verification failed. Please contact Tencent Cloud team for help. |
-8 | Decryption failed. Please contact Tencent Cloud team for help. |
-9 | The JSON field in TELicense is incorrect. Please contact Tencent Cloud team for help. |
-10 | The Tencent Effect authentication information parsed online is empty. Please contact Tencent Cloud team for help. |
-11 | Failed to write Tencent Effect SDK authentication information to the local file, which may be caused by an I/O failure. |
-12 | Download failed, and failed to parse local assets. |
-13 | Authentication failed. |
Others | Please contact Tencent Cloud team for help. |
XMagic.framework)NSDictionary *assetsDict = @{@"core_name":@"LightCore.bundle",@"root_path":[[NSBundle mainBundle] bundlePath] // The directory where LightCore.bundle is located.};
/**previewSize: View width and heightassetsDict: LightCore.bundle configured in the previous step and its path*/self.xMagicApi = [[XMagic alloc] initWithRenderSize:previewSize assetsDict:assetsDict];
/**Take the device camera data output as an example*///sampleBuffer:Data output by the device camera-(CMSampleBufferRef)didProcessCPUData:(CMSampleBufferRef)sampleBuffer{CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);YTProcessInput *input = [[YTProcessInput alloc] init];input.pixelData = [[YTImagePixelData alloc] init];input.pixelData.data = pixelBuffer;input.dataType = kYTImagePixelData;YTProcessOutput *output = [self.xMagicKit process:input];if (output.pixelData.data != nil) { //output.pixelData.data:Data processed by Beauty Effeck SDKCMSampleBufferRef outSampleBuffer = [self sampleBufferFromPixelBuffer:output.pixelData.data];return outSampleBuffer;}return nil;}//PixelBuffer to sampleBuffer- (CMSampleBufferRef)sampleBufferFromPixelBuffer:(CVPixelBufferRef)pixelBuffer{CFRetain(pixelBuffer);CMSampleBufferRef outputSampleBuffer = NULL;CMSampleTimingInfo timing = {kCMTimeInvalid, kCMTimeInvalid, kCMTimeInvalid};CMVideoFormatDescriptionRef videoInfo = NULL;OSStatus result = CMVideoFormatDescriptionCreateForImageBuffer(NULL, pixelBuffer, &videoInfo);result = CMSampleBufferCreateForImageBuffer(kCFAllocatorDefault, pixelBuffer, true, NULL, NULL, videoInfo, &timing, &outputSampleBuffer);CFArrayRef attachments = CMSampleBufferGetSampleAttachmentsArray(outputSampleBuffer, YES);CFMutableDictionaryRef dict = (CFMutableDictionaryRef)CFArrayGetValueAtIndex(attachments, 0);CFDictionarySetValue(dict, kCMSampleAttachmentKey_DisplayImmediately, kCFBooleanTrue);CFRelease(videoInfo);CFRelease(pixelBuffer);return outputSampleBuffer;}
// Called where SDK resources need to be released[self.xMagicApi deinit]
masukan