OnPreviewFrame(IntPtr数据,摄像头)未被称为| FastAndroidCamera
我试图使用这个库访问Android上预览的帧,然后将FastJavaByteArray传递给Zxing的Decode()方法,以扫描预览特定区域中的条形码。预览工作正常,当我使用普通预览时。SetPreviewCallback(这个);它工作正常,并调用OnPreviewFrame(字节[],摄影机)。只有当我使用Preview.SetNonMarshalingPreviewCallback(this)时,才没有调用该方法。我不确定为什么会发生这种情况,我想使用它,这样我就可以使用Zxing逐帧扫描条形码。我在下面附上了我的代码OnPreviewFrame(IntPtr数据,摄像头)未被称为| FastAndroidCamera,android,android-camera,Android,Android Camera,我试图使用这个库访问Android上预览的帧,然后将FastJavaByteArray传递给Zxing的Decode()方法,以扫描预览特定区域中的条形码。预览工作正常,当我使用普通预览时。SetPreviewCallback(这个);它工作正常,并调用OnPreviewFrame(字节[],摄影机)。只有当我使用Preview.SetNonMarshalingPreviewCallback(this)时,才没有调用该方法。我不确定为什么会发生这种情况,我想使用它,这样我就可以使用Zxing逐帧
public void Open() {
if (!closed) return;
try {
Preview = Camera.Open();
}
catch (Exception e) {
Console.WriteLine(e);
}
var parameters = Preview.GetParameters();
int numBytes = (parameters.PreviewSize.Width * parameters.PreviewSize.Height * Android.Graphics.ImageFormat.GetBitsPerPixel(parameters.PreviewFormat)) / 8;
using (FastJavaByteArray buffer = new FastJavaByteArray(numBytes))
Preview.AddCallbackBuffer(new FastJavaByteArray(numBytes));
var options = new ZXing.Mobile.MobileBarcodeScanningOptions();
options.PossibleFormats.Add(BarcodeFormat.QR_CODE);
barcodeReader = options.BuildBarcodeReader();
Preview.SetNonMarshalingPreviewCallback(this);
//Preview.SetPreviewCallback(this);
Handler handler = new Handler();
Action loop = null;
loop = () =>
{
if (!closed)
{
AutoFocusLoop();
handler.PostDelayed(loop, (long)(1000 * AF_DELAY));
}
};
handler.Post(loop);
closed = false;
}
public void OnPreviewFrame(IntPtr data, Camera camera)
{
throw new NotImplementedException();
}