Я разрабатываю приложение для Android с ARCore для рендеринга видео, используя пример видео с chromakey в качестве основы.Видео в формате 360, поэтому я заменяю мультимедийный проигрыватель Android на ExoPlayer
, поскольку оно поддерживает воспроизведение видео 360 в стереофоническом режиме.
Я настроил ExoPlayer для рендеринга с использованием поверхности, предусмотренной для ARCore ExternalTexture.getSurface
как в примере, но, как и ожидалось, видео не воспроизводится в стереорежиме 360, для архивации требуется SphericalSurfaceView
, и это моя проблема.
Как настроить SphericalSufaceView
для рендеринга с использованием ARCore ExternalTexture
surface?
ExternalTexture texture = new ExternalTexture();
// Create an Android MediaPlayer to capture the video on the external texture's surface.
SphericalSurfaceView view = new SphericalSurfaceView(this);
exoPlayer = ExoPlayerFactory.newSimpleInstance(this);
exoPlayer.setVideoSurface(texture.getSurface());
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(this,
Util.getUserAgent(this, getResources().getString(R.string.app_name)));
MediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(
RawResourceDataSource.buildRawResourceUri(R.raw.video_360));
exoPlayer.prepare(videoSource);
exoPlayer.setRepeatMode(Player.REPEAT_MODE_ALL);