Files
tianrunCRM/Assets/3rd/NativeCamera/Plugins/Android/NCCameraCallbackAndroid.cs
2020-07-18 21:12:14 +08:00

39 lines
902 B
C#

#if !UNITY_EDITOR && UNITY_ANDROID
using UnityEngine;
namespace NativeCameraNamespace
{
public class NCCameraCallbackAndroid : AndroidJavaProxy
{
private readonly NativeCamera.CameraCallback callback;
private readonly NCCallbackHelper callbackHelper;
public NCCameraCallbackAndroid( NativeCamera.CameraCallback callback ) : base( "com.yasirkula.unity.NativeCameraMediaReceiver" )
{
this.callback = callback;
callbackHelper = new GameObject( "NCCallbackHelper" ).AddComponent<NCCallbackHelper>();
}
public void OnMediaReceived( string path )
{
callbackHelper.CallOnMainThread( () => MediaReceiveCallback( path ) );
}
private void MediaReceiveCallback( string path )
{
if( string.IsNullOrEmpty( path ) )
path = null;
try
{
if( callback != null )
callback( path );
}
finally
{
Object.Destroy( callbackHelper );
}
}
}
}
#endif