问题描述
我想通过启动扫描仪页面来激活手电筒/手电筒,但它不起作用。没有错误信息。
-(audiobufferlist *) getBufferListFromData: (NSData *) data
{
if (data.length > 0)
{
NSUInteger len = [data length];
//I guess you can use Byte*,void* or Float32*. I am not sure if that makes any difference.
Byte * byteData = (Byte*) malloc (len);
memcpy (byteData,[data bytes],len);
if (byteData)
{
audiobufferlist * theDataBuffer =(audiobufferlist*)malloc(sizeof(audiobufferlist) * 1);
theDataBuffer->mNumberBuffers = 1;
theDataBuffer->mBuffers[0].mDataByteSize = len;
theDataBuffer->mBuffers[0].mNumberChannels = 1;
theDataBuffer->mBuffers[0].mData = byteData;
// Read the data into an audiobufferlist
return theDataBuffer;
}
}
return nil;
}
AndroidManifest:
<?xml version="1.0" encoding="utf-8" ?>
<zxing:ZXingScannerPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:zxing="clr-namespace:ZXing.Net.Mobile.Forms;assembly=ZXing.Net.Mobile.Forms"
x:Class="de.scanner.Pages.ScanPage"
NavigationPage.HasNavigationBar="True"
NavigationPage.HasBackButton="True"
OnScanResult="Handle_OnScanResult"
IsScanning="False"
IsTorchOn="True">
</zxing:ZXingScannerPage>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
解决方法
您可以改用 ZXingScannerView
并使用按钮打开手电筒。
<Button BackgroundColor="Chocolate" Clicked="Button_Clicked"/>
<zxing:ZXingScannerView x:Name="_scanView" OnScanResult="Handle_OnScanResult" IsScanning="true"
WidthRequest="200" HeightRequest="200" />
private void Button_Clicked(object sender,EventArgs e)
{
_scanView.IsTorchOn = true;
}