Я хочу воспроизвести видео с помощью ARCore, но он отображает только прямоугольную форму файла video_screen.sfb и звук видео
введите описание изображения здесь
и это моя mainActivity
ExternalTexture externalTexture = new ExternalTexture();
MediaPlayer mediaPlayer = MediaPlayer.create(this , R.raw.n);
mediaPlayer.setSurface(externalTexture.getSurface());
mediaPlayer.setLooping(true);
ModelRenderable.builder()
.setSource(this , R.raw.video_screen)
.build()
.thenAccept(modelRenderable -> {
videoRenderable = modelRenderable;
videoRenderable.getMaterial().setExternalTexture("videoTexture" , externalTexture);
videoRenderable.getMaterial().setFloat4("keyColor", new Color(0.01843f,1.0f, 0.098f));
});
ArFragment arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.arFragment);
arFragment.setOnTapArPlaneListener((hitResult, plane, motionEvent) -> {
AnchorNode anchorNode = new AnchorNode(hitResult.createAnchor());
if (!mediaPlayer.isPlaying()){
mediaPlayer.start();
externalTexture.getSurfaceTexture().setOnFrameAvailableListener(surfaceTexture -> {
anchorNode.setRenderable(videoRenderable);
externalTexture.getSurfaceTexture().setOnFrameAvailableListener(null);
});
}
else {
anchorNode.setRenderable(videoRenderable);
}
float width = mediaPlayer.getVideoWidth();
float height = mediaPlayer.getVideoHeight();
anchorNode.setLocalScale(new Vector3(HEIGHT * (width/height) , HEIGHT ,1.0f));
arFragment.getArSceneView().getScene().addChild(anchorNode);
});