Я пишу приложение, где мне нужно отображать два TextureView
(s) в моей деятельности. Я прилагаю видео к каждому из TextureView
экземпляра, используя MediaPlayer
объекты, используя следующий код внутри onSurfaceTextureAvailable()
:Как узнать onSurfaceTextureAvailable, для которого TextureView
@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
, как бы я знать, обратный вызов в onSurfaceTextureAvailable(...)
для которых TextureView
.
Другой способ заключается в установке на MediaPlayer
объекты за пределами onSurfaceTextureAvailable(...)
, получая власть над соответствующей SurfaceTexture
по телефону TextureView.getSurfaceTexture()
. Я тоже это пробовал, но он всегда возвращает null
. Есть ли что-то еще, что мне нужно сделать для этого?
как я могу пропустить это. Большое спасибо!!! – Swapnil