package com.boying.service; import com.boying.Util.OSUtils; import com.boying.common.InitSdkTask; import com.sun.jna.Native; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.concurrent.ThreadPoolExecutor; @Slf4j @Component public class SdkInitService { public static HCNetSDK hcNetSDK = null; public static PlayCtrl playCtrl = null; static HCNetSDK.FExceptionCallBack fExceptionCallBack; static class FExceptionCallBack_Imp implements HCNetSDK.FExceptionCallBack{ @Override public void invoke(int dwType, int lUserID, int lHandle, Pointer pUser) { System.out.println("异常事件类型"); return; } } public SdkInitService(){ if (hcNetSDK == null){ synchronized (HCNetSDK.class){ try { hcNetSDK = (HCNetSDK) Native.loadLibrary(OSUtils.getLoadLibrary(),HCNetSDK.class); } catch (Exception ex) { log.error("SdkInitService-init-hCNetSDK-error"); } } } if (playCtrl == null){ synchronized (HCNetSDK.class){ try { playCtrl = (PlayCtrl) Native.loadLibrary(OSUtils.getLoadPlayLibrary(), PlayCtrl.class); } catch (Exception ex) { log.error("PlatCtrlInitService-init-PlatCtrl-error"); } } } } @Autowired private ThreadPoolExecutor executor; public void initSdk() { log.info("HKSDKInitService-init-coming"); executor.execute(new InitSdkTask()); } }