Skip to content
Switch branches/tags
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Spectaculum Sample App: Immersive 360° video playback with ExoPlayer

This app demonstrates immersive video playback with Spectaculum and ExoPlayer 2 on Android. Spectaculum provides a native view widget for picture and video content, in contrast to alternatives building on WebViews.

By default, this app play back the stereoscopic 3D 360° video "House Demo". To switch to the monoscopic 360° high resolution test video "Orion360 Test Video", change MainActivity#mSelectedVideoSource to 0.


Logcat error "E/ShaderProgram: Error linking program"

Happens when the effect is activated (mSpectaculumView.selectEffect(0)) before the OpenGL surface is ready. This is not really a problem because the effect gets reinitialized later once the surface is ready, and works as expected. You can get rid of the error by activating the effect at a later time e.g. in onSurfaceCreated where the GL surface is guaranteed to be ready, or when the video is loaded.

This error happened in earlier versions of this example app where selectEffect was called from onCreate. The call was moved to onSurfaceCreated in commit 95705cc to fix this error.

EffectException: java.util.ConcurrentModificationException

This exception comes from a concurrent modification of the list of parameters that the shader effect manages internally. This list is modified during initialization of the effect, and when a viewport navigation method (e.g. viewport touch navigation) is attached. Initialization happens when selecting the effect for the first time (with selectEffect(index)), or when it is automatically reinitialized because the surface changes (e.g. surface size change when video rendering starts).

To avoid a collision of these events, it is best to not select the effect until the surface is ready (onSurfaceCreated).


Copyright (C) 2016 Mario Guggenberger Released under the Apache 2.0 license.


Example app for immersive 360° (stereo 3D) video playback with Spectaculum



No releases published


No packages published