使用LibGDX播放视频

时间:2013-11-03 13:13:40

标签: android video libgdx

首先,我知道播放视频被认为是LibGDX的“超出范围”。

我一直在开发一款Android应用程序,它允许您录制视频并播放它们,所有内容均来自使用Android Camera API的“内部”LibGDX。 我设法让录音部分工作,或多或少(在像Galaxy Ace这样的旧设备上,屏幕做了奇怪的事情而不是录音), 但我坚持使用“播放我刚录制的视频”部分。 我知道调用Intent并使用系统的Media Player来完成这项工作很容易,

     Intent intent = new Intent();              
     intent.setAction(Intent.ACTION_VIEW);               
     intent.setDataAndType(Uri.parse("file://" + Environment.getExternalStorageDirectory() + "/myvideo.mp4"), "video/*");
             ...
     activity.startActivity(intent);

但它不是一个不错的解决方案,因为它不是真正的“响应”(当用户进入Intent时我失去了控制权)。 所以我的问题是,是否可以同时使用Android MediaPlayer API与LibGDX播放视频? 我已经尝试过并且没有得到任何结果,大多数时候我有“开始失败() - 9”错误或没有错误但屏幕不显示任何内容。 这是我用过的一些代码:

Android内部:

public void startPlaying(){     
    if (player.getCurrentPosition() == 0){
        try{        
            player.setDisplay(holder);              
            player.setDataSource(path);
            player.prepare();
        } catch(IllegalArgumentException e) {
        } catch (IOException e) {
        }
    }

    player.start();
    Log.v(LOGTAG, "Playing Started");
}

当我们在LibGDX中播放视频时,我们只是清除屏幕而不是其他内容:

    GLCommon gl = Gdx.gl20;
    gl.glClearColor(0f, 0f, 0f, 0f);
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
    gl.glEnable(GL20.GL_DEPTH_TEST);
    gl.glEnable(GL20.GL_TEXTURE);                     
    gl.glEnable(GL20.GL_TEXTURE_2D);     
    gl.glDepthFunc(GL20.GL_LEQUAL);
    gl.glClearDepthf(1.0F);

0 个答案:

没有答案