Я не могу помочь вам с Unity, но в Java, вы можете создать текстуру с OpenGL-ES:
private static int GL_TEXTURE_EXTERNAL_OES = 0x8D65;
....
GLES20.glGenTextures(1, textureHandle, 0);
GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, textureHandle[0]);
Используйте это, чтобы создать текстуру поверхности и поверхности:
SurfaceTexture surfaceTexture = new SurfaceTexture(textureHandle[0]);
Surface surface = new Surface(surfaceTexture);
А затем передать эту поверхность android.media.MediaPlayer:
MediaPlayer mediaPlayer = new MediaPlayer(getContext(), uriToMyMediaFile, surface);
Bind, что текстуры на площади в вашей сцене а nd назовите это каждый кадр:
surfaceTexture.updateTexImage()
и видео будет воспроизводиться при вызове mediaPlayer.start();
Если Unity позволяет вам написать свой собственный Java-код для работы за кулисами, это должно работать, если вы привязываете эту текстуру к поверхности из Unity.
Если у вас есть видеопоток, который вы не можете воспроизвести с помощью mediaPlayer (например, живой видеочат и т. Д.), Вы можете использовать поверхность с android.media.MediaCodec, но есть еще много работы по настройке ,
@Все, я пытаюсь купить плагин EasyMoviePlayer из магазина активов Unity @ https://www.assetstore.unity3d.com/ru/#!/content/10032. Может ли кто-нибудь предположить, что это нормально. – Rao