私は自分のアクティビティに2つのTextureView
を表示する必要があるアプリケーションを作成しています。私はonSurfaceTextureAvailable()
内の次のコードを使用してMediaPlayer
オブジェクトを使用してTextureView
インスタンスのそれぞれに動画を添付しています:onSurfaceTextureAvailableがどのテクスチャビューに対して呼び出されるか
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i1) {
Surface surface = new Surface(surfaceTexture);
mMediaPlayer1 = new MediaPlayer();
try {
mMediaPlayer1.setDataSource(<filePath>);
} catch (IOException e) {
Log.e(TAG, "Unable to load the file from the file system", e);
return;
}
mMediaPlayer1.setSurface(surface);
mMediaPlayer1.setLooping(true);
mMediaPlayer1.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
isPlaybackReady = true;
}
});
mMediaPlayer1.prepareAsync();
}
を今、私はTextureView
の2つのインスタンスを持っている場合、私はonSurfaceTextureAvailable(...)
へのコールバックがどのTextureView
のために知っているだろうか。
他の方法は、TextureView.getSurfaceTexture()
を呼び出すことによって、関連するSurfaceTexture
上のホールドを取得することにより、セットアップにonSurfaceTextureAvailable(...)
外MediaPlayer
オブジェクトです。私もそれを試みたが、それは常にnull
を返す。このために何か他に必要なことはありますか?
どのように私はそれを欠場することができます。どうもありがとう!!! – Swapnil