// package Ġcom . example . learning audio and video . utils Ċ // Ċ // import Ġandroid . graphics . Bitmap Factory Ċ // import Ġandroid . graphics . Image Format Ċ // import Ġandroid . graphics . Rect Ċ // import Ġandroid . graphics . Y uv Image Ċ // import Ġandroid . hardware . Camera Ċ // import Ġandroid . util . Log Ċ // import Ġjava . io . ByteArray OutputStream Ċ // Ċ // Ċ // /** Ċ // Ġ* ĠCreated Ġwith ĠAndroid ĠStudio . Ċ // Ġ* ĠDescription : Ċ // Ġ* Ġ@ author : ĠWang jian x ian Ċ // Ġ* Ġ@ Create Date : Ġ 2 0 2 1 / 1 / 2 1 Ġ 0 : 2 2 Ċ // Ġ*/ Ċ // class ĠPreview To Bitmap Ġ{ Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ é¢Ħ è§Ī åĽŀè°ĥ Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġprivate Ġval Ġpreview Callback : ĠCamera . Preview Callback Ġ= Ġobject Ġ: ĠCamera . Preview Callback () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġon Preview Frame ( data : ĠByteArray ?, Ġcamera : ĠCamera ?) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize : ĠCamera . Size Ġ= Ġcamera . getParameters (). get Preview Size () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠY uv Image ( data , ĠImage Format . NV 2 1 , Ġsize . width , Ġsize . height , Ġnull ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( image Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstream Ġ= ĠByteArrayOutputStream () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage . compress To J peg ( Rect ( 0 , Ġ 0 , Ġsize . width , Ġsize . height ), Ġ 8 0 , Ġstream ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbmp Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap Factory . decode ByteArray ( stream . toByteArray (), Ġ 0 , Ġstream . size ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO ï¼ļ æŃ¤ å¤Ħ åı¯ä»¥ å¯¹ ä½į åĽ¾ è¿Ľè¡Į å¤ĦçĲĨ ï¼Į å¦Ĥ æĺ¾ç¤º ï¼Į ä¿ĿåŃĺ çŃī Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstream . close () Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" WJ X ", Ġ" Error :" Ġ+ Ġex . message ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ //}