2016-01-06 3 views

ответ

1

Я использовал библиотеку Rajawali вместе с Google Cardboard Sdk и модифицировал initscene() таким образом, чтобы получить эту работу.

public class VideoRenderer extends RajawaliCardboardRenderer { 

Context mContext; 

private MediaPlayer mMediaPlayer; 
private StreamingTexture mVideoTexture; 

public VideoRenderer(Context context) { 
    super(context); 
    mContext = context; 
} 

@Override 
protected void initScene() { 

    mMediaPlayer = MediaPlayer.create(getContext(), 
      R.raw.video); 
    mMediaPlayer.setLooping(true); 

    mVideoTexture = new StreamingTexture("sintelTrailer", mMediaPlayer); 
    Material material = new Material(); 
    material.setColorInfluence(0); 
    try { 
     material.addTexture(mVideoTexture); 
    } catch (ATexture.TextureException e) { 
     e.printStackTrace(); 
    } 

    Sphere sphere = new Sphere(50, 64, 32); 
    sphere.setScaleX(-1); 
    sphere.setMaterial(material); 

    getCurrentScene().addChild(sphere); 

    getCurrentCamera().setPosition(Vector3.ZERO); 

    getCurrentCamera().setFieldOfView(75); 

    mMediaPlayer.start(); 

} 

@Override 
protected void onRender(long ellapsedRealtime, double deltaTime) { 
    super.onRender(ellapsedRealtime, deltaTime); 
    mVideoTexture.update(); 
} 

@Override 
public void onPause() { 
    super.onPause(); 
    if (mMediaPlayer != null) 
     mMediaPlayer.pause(); 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    if (mMediaPlayer != null) 
     mMediaPlayer.start(); 
} 

@Override 
public void onRenderSurfaceDestroyed(SurfaceTexture surfaceTexture) { 
    super.onRenderSurfaceDestroyed(surfaceTexture); 
    mMediaPlayer.stop(); 
    mMediaPlayer.release(); 
} 
} 
Смежные вопросы