Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

По умолчанию, инициализация объектов рендеринга видео при публикации и проигрывании производится автоматически. Однако на некоторых версиях Android в этом случае требуется явное указание контекста для графики OpenGL, в противном случае инициализации рендерера приведет к крашу приложения с android.opengl.GLException, например

Code Block
themeRDark
2024-06-13 15:57:47.006 32017-646/com.flashphoner.wcsexample.screencapture I/EglBase14Impl: Using OpenGL ES version 2
2024-06-13 15:57:47.013 32017-646/com.flashphoner.wcsexample.screencapture E/SurfaceTextureHelper: CaptureThread create failure
2024-06-13 15:57:47.013 32017-646/com.flashphoner.wcsexample.screencapture E/SurfaceTextureHelper: android.opengl.GLException: Failed to create EGL context: 0x3000
2024-06-13 15:57:47.015 32017-646/com.flashphoner.wcsexample.screencapture E/SurfaceTextureHelper: [1/2] android.opengl.GLException: Failed to create EGL context: 0x3000
        at org.webrtc.EglBase14Impl.createEglContext(EglBase14Impl.java:336)
        at org.webrtc.EglBase14Impl.-$$Nest$smcreateEglContext(Unknown Source:0)
        at org.webrtc.EglBase14Impl$EglConnection.<init>(EglBase14Impl.java:66)
        at org.webrtc.EglBase14Impl.<init>(EglBase14Impl.java:142)
        at org.webrtc.EglBase.createEgl14(EglBase.java:263)
        at org.webrtc.EglBase.create(EglBase.java:206)
        at org.webrtc.SurfaceTextureHelper.<init>(SurfaceTextureHelper.java:187)
        at org.webrtc.SurfaceTextureHelper.<init>(Unknown Source:0)
        at org.webrtc.SurfaceTextureHelper$1.call(SurfaceTextureHelper.java:75)
        at org.webrtc.SurfaceTextureHelper$1.call(SurfaceTextureHelper.java:70)
        at org.webrtc.ThreadUtils$3.run(ThreadUtils.java:173)
        at android.os.Handler.handleCallback(Handler.java:874)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:198)
    	at android.os.HandlerThread

Чтобы избежать подобного исключения, в сборке Android SDK 1.1.0.65 добавлена возможность явной инициализации объектов рендеринга с указанием единого OpenGL контекста приложения Flashphoner.eglBaseContext .

Для этого необходимо отключить автоматическую инициализацию рендереров при создании сессии

...