TextureView에서 onSurfaceTextureAvailable이 아닌 경우 검사

1784 단어 Android
투덜거리지 않았기 때문에 스스로 필기를 한다
TextureViewSurfaceTextureListener는 Interface 중 하나onSurfaceTextureAvailable가 TextureView의SurfaceTexture가 사용 가능한 상태일 때 호출됩니다.대부분의 경우 호출을 할 때 카메라의 초기 등을 조작한다.
이번에는 제목과 같이 회답을 받지 못하는 현상을 만났다.

환경 확인

  • Nexus 5X (8.0)
  • Docomo Galaxy S8+ (7.0)
  • 해결책


    AndroidManifest.xml
    ...
    <application
            android:hardwareAccelerated="false"
    ...        
    
    이 프로젝트가 있으면onSurfaceTextureAvailable 청중을 불러서는 안 되고, 언제까지 카메라의 초기화 처리를 불러서는 안 되며 검은색 화면이 나온다.
    그때 logcat
    W/TextureView: A TextureView or a subclass can only be used with hardware acceleration enabled.
    
    이런 워닝이 있어서 거기 근처에서 찾을 수 있을 거야.
    이 이벤트에서 주의해야 할 것은 터미널의 開発者向けオプション ハードウェアアクセラレーテッドレンダリング GPUレンダリングを使用 에서 체크가 있으면 그려집니다.
    터미널 문제에 따라 분할이 어려워졌으니 주의하세요.
    따라서 삭제android:hardwareAccelerated="false"하면 미리보기가 표시됩니다.

    Refs

  • https://developer.android.com/reference/android/hardware/camera2/package-summary.html
  • https://developer.android.com/reference/android/hardware/camera2/package-summary.html?q=textureview
  • 좋은 웹페이지 즐겨찾기