2

まず、動画の再生は LibGDX の「範囲外」と見なされることを知っています。

私は、Android Camera APIを使用してLibGDXの「内部」からビデオを録画して再生できるAndroidアプリに取り組んできました。多かれ少なかれ、録音部分を機能させることができました(Galaxy Aceのような一部の古いデバイスでは、画面は録音の代わりに奇妙なことをします)が、「録音したばかりのビデオを再生しています」で立ち往生しています部。インテントを呼び出して、システムのメディア プレーヤーを使用して仕事をするのは簡単です。

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

しかし、それは実際には「レスポンシブ」ではないため、適切なソリューションではありません(ユーザーがインテント内にいると制御できなくなります)。私の質問は、Android MediaPlayer API と LibGDX を同時に使用してビデオを再生することは可能ですか? ほとんどの場合、「start failed() -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);
4

0 に答える 0