短視訊系統,獲取camera的的影像並儲存
短視訊系統,獲取camera的的影像並儲存實現的相關程式碼
要想儲存camera中的影像就要用到ImageReader
ImageReader中有surface,將這個surface設定到
CaptureRequest和CameraCaptureSession中。
ImageReader的建立
public static @NonNull ImageReader newInstance( @IntRange(from = 1) int width, @IntRange(from = 1) int height, @Format int format, @IntRange(from = 1) int maxImages)
建立imagerader我們需要的引數
width:我們要讀取圖片的寬
height 我們要讀取圖片的高
format 我們要讀取圖片的格式 ,特別要注意不支援ImageFormat.NV21。我們可以從原始碼中看到
protected ImageReader(int width, int height, int format, int maxImages, long usage) { ....... if (format == ImageFormat.NV21) { throw new IllegalArgumentException( "NV21 format is not supported"); } ....... }
maxImages 表示我們最多可以同時從ImageRader中獲取多少張圖片。獲取的越多,需要的buffer也就越多。所以這裡要注意。
我們知道camera可以支援很多解析度,那麼我們就從camera當中,找到我們支援的寬高
所以就有了下面的程式碼
從camera中獲取寬高的方法
CameraCharacteristics characteristics = cameraManager.getCameraCharacteristics(backCameraId); StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); Size largest = Collections.max(Arrays.asList(map.getOutputSizes(ImageFormat.YUV_420_888)), new CompareSizesByArea());
建立ImageRader
mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.YUV_420_888, 2); width = largest.getWidth(); height = largest.getHeight();
獲取到寬高後我們建立ImageRader設定到CameraCaptureSession
OutputConfiguration outputConfiguration = new OutputConfiguration(binding.surfaceView.getHolder().getSurface()); OutputConfiguration imageReaderOutputConfiguration = new OutputConfiguration(mImageReader.getSurface()); List<OutputConfiguration> outputs = new ArrayList<>(); outputs.add(outputConfiguration); outputs.add(imageReaderOutputConfiguration); SessionConfiguration sessionConfiguration = new SessionConfiguration(SessionConfiguration.SESSION_REGULAR, outputs, mExecutorService, new CameraCaptureSession.StateCallback() { @Override public void onConfigured(@NonNull CameraCaptureSession session) { } @Override public void onConfigureFailed(@NonNull CameraCaptureSession session) { } } ); mCamera.createCaptureSession(sessionConfiguration);
我們將ImageReader設定到CaptureRequest
private void record() { try { Log.e("CameraActivity", "record"); i = 0; File file = new File(savePicPath); DirUtil.deleteDir(file); final CaptureRequest.Builder builder = mCamera.createCaptureRequest(CameraDevice.TEMPLATE_RECORD); builder.addTarget(binding.surfaceView.getHolder().getSurface()); builder.addTarget(mImageReader.getSurface()); OutputConfiguration outputConfiguration = new OutputConfiguration(binding.surfaceView.getHolder().getSurface()); OutputConfiguration imageReaderOutputConfiguration = new OutputConfiguration(mImageReader.getSurface()); List<OutputConfiguration> outputs = new ArrayList<>(); outputs.add(outputConfiguration); outputs.add(imageReaderOutputConfiguration); SessionConfiguration sessionConfiguration = new SessionConfiguration(SessionConfiguration.SESSION_REGULAR, outputs, mExecutorService, new CameraCaptureSession.StateCallback() { @Override public void onConfigured(@NonNull CameraCaptureSession session) { } @Override public void onConfigureFailed(@NonNull CameraCaptureSession session) { } } ); mCamera.createCaptureSession(sessionConfiguration); } catch (Exception e) { } }
以上就是短視訊系統,獲取camera的的影像並儲存實現的相關程式碼, 更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2795528/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- opencv python 從攝像頭獲取視訊/從檔案獲取視訊 /儲存視訊OpenCVPython
- 短視訊直播系統,動態內的圖片實現長按儲存
- 短視訊原始碼,視訊轉為圖片儲存原始碼
- 短視訊SEO霸屏系統原始碼,抖音獲客系統軟體,短視訊賬號矩陣系統。原始碼矩陣
- 短視訊平臺原始碼,系統中獲取當前本地時間原始碼
- Excel 讀取圖片並獲取儲存路徑Excel
- win10系統如何擷取視訊片段儲存為圖片Win10
- 短視訊直播系統開發直播短視訊程式搭建短視訊互動直播
- 短視訊同城爆客系統助力商家曝光獲客
- 直播軟體開發,影像視訊的讀取與儲存,以及呼叫相機拍攝
- 直播短視訊原始碼短視訊APP短視訊帶貨系統多商戶直播原始碼APP
- 小紅書短視訊seo引流系統
- 短視訊平臺原始碼,vue獲取當前系統時間,日期及星期幾原始碼Vue
- 獲取微信小程式二維碼並且儲存微信小程式
- 立體視覺影象對,獲取與儲存視覺
- php獲取遠端網站圖片並儲存本地PHP網站
- 短視訊帶貨原始碼,儲存圖片到相簿/相簿原始碼
- 短視訊系統原始碼,讓程式獲得通知欄許可權原始碼
- 短視訊系統原始碼,各個視訊正常排序排列原始碼排序
- 4.5PB!杉巖物件儲存中標天威視訊“中心儲存系統建設”物件
- 短視訊直播系統原生系統原生APP雙端APP
- sql 2k中的圖片儲存和獲取----引申到檔案儲存和獲取 (轉)SQL
- 各行各業短視訊詢盤系統
- 儲存系統實現-構建自己的儲存系統(一)
- 短視訊平臺原始碼,Android獲取螢幕的高度和寬度原始碼Android
- 獲取影像的屬性
- Win10系統怎麼儲存會聲會影製作的視訊Win10
- 短視訊商城系統,手機獲取到驗證碼後自動填入
- 【玩具】獲取B站視訊的音訊片段音訊
- 杉巖PACS影像系統分散式儲存架構分散式架構
- 直播商城系統APP帶貨系統短視訊帶貨系統APP
- 如何獲取HDFS上檔案的儲存位置
- GreenPlum 獲取表儲存大小的方法推薦
- 儲存過程獲取表被引用的資訊儲存過程
- NOPI讀取Word模板並儲存
- 短視訊平臺原始碼,獲取安卓手機驗證碼原始碼安卓
- 每天定時獲取必應每日一圖並儲存做桌布
- SpringData JPA中儲存後重新整理並獲取實體Spring