LoginSignup
0
0

jetpack composeでcameraxとmlkitをつかってバーコード読み取り画面を実装するPart3

Last updated at Posted at 2024-06-23

はじめに

今回も前回に引き続きJetpackComposeでのバーコード読み取り機能を実装していきます。

本文

下記のコードをViewModelに追加することで実際にコードを読み取った時にやりたい処理をすることができます

private val qrCodeFlow = MutableSharedFlow<Barcode>()

    val qrCodeAnalyzeUseCase: ImageAnalysis = ImageAnalysis.Builder()
        .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
        .build()
        .apply {
            setAnalyzer(
                Executors.newSingleThreadExecutor(),
                BarCodeScanner { barcode ->
                    viewModelScope.launch {
                        qrCodeFlow.emit(barcode)
                    }
                },
            )
        }

    init {
        intentRepeatOnSubscription { scope ->
            qrCodeFlow
                .debounce(100.milliseconds)
                .filter { state.isAnalysing }
                .mapNotNull { barcode -> barcode.rawValue }
                .onEach {
                    // やりたい処理を呼び出し
                }
                .launchIn(scope)
        }
    }

画像解析部分の公式は下記にあります
https://developer.android.com/media/camera/camerax/analyze?hl=ja&authuser=1&_gl=1*1xafqf3*_up*MQ..*_ga*MTgzMjE2NzQ5Ni4xNzE2MTk1Mjc5*_ga_6HH9YJMN9M*MTcxNjE5NTI3OS4xLjAuMTcxNjE5NTI3OS4wLjAuMA..

次で最後になります
記事を書き次第リンクを追加しようと思っています

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0