Swift XCode AVMetadataMachineReadableCodeObject кодирования против C # Xamarin AVMetadataMachineReadableCodeObject - PullRequest
0 голосов
/ 26 сентября 2019

Я занимаюсь поиском приложения для сканирования штрих-кодов с помощью камеры iPhone iPhone.

Я могу использовать Swift для получения нужных мне строковых данных из сканируемого изображения.Однако при использовании Xamarin с реализацией Xamarin AVFoundation.AVMetadataObject и AVMetadataMachineReadableCodeObject я не получаю все символы.Код C #, кажется, выполняется так же, как и код Swift, с двумя разными результатами.

Пример Xcode Swift:

if let metadataObject = metadataObjects.first {
    guard let readableObject = metadataObject as? AVMetadataMachineReadableCodeObject else { return }
    guard let stringValue = readableObject.stringValue else { return }
    AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
    found(code: stringValue)
}

будет отображать что-то вроде этого: ЧТО ХОЧУ

[)> \ u {1e} 06 \ u {1d} 1SMYDATA \ u {1d} S1MYDATA \ u {1d} 1 PMYDATA\u {1d} WMYDATA \ u {1d}4LUS \ u {1e} \ u {4}

Пример кода Xamarin Foundation:

var barcodeMetadataObject = transformedMetadataObject as AVMetadataMachineReadableCodeObject;
if (barcodeMetadataObject != null)
{
    var barcodeOverlayPath = this.BarcodeOverlayPathWithCorners(barcodeMetadataObject.Corners);
            metadataObjectOverlayLayer.Path = barcodeOverlayPath;

    // If the metadata object has a string value, display it.
    string textLayerString = null;
    if (!string.IsNullOrEmpty(barcodeMetadataObject.StringValue))
    {
        textLayerString = barcodeMetadataObject.StringValue;
    }
    else
    {
        // TODO: add Descriptor (line 618 in original iOS sample)
    }

будет отображать что-то вроде этого: ЧТО Я НЕ ХОЧУ ...I ХОЧУ ВЕСЬ НАБОР СИМВОЛОВ

[)> 061SMYDATAS1911500531PMYDATAWMYDATA

Итак, у меня есть следующее: (Xcode) [)> \ u {1e} 06 \ u {1d} 1SMYDATA \ u {1d} S1MYDATA \ u {1d} 1 PMYDATA\u {1d} WMYDATA \ u {1d} 4LUS \ u {1e} \ u {4}

В сравнении с этим: (Xamarin) [)> 061SMYDATAS1911500531PMYDATAWMYDATA

Я не понимаю, почему реализация в Xamarin не будет предоставлять все те же символы сканирования, когда она по существу действует только какобертка.

У кого-нибудь есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...