내 활동에 두 개의 TextureView
(s)을 표시해야하는 응용 프로그램을 작성하고 있습니다. 나는 onSurfaceTextureAvailable()
안에 다음 코드를 사용 MediaPlayer
객체를 사용하여 TextureView
인스턴스의 각 비디오를 부착하고있다 :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
에 대해 알고 얼마나.
다른 방법은 TextureView.getSurfaceTexture()
를 호출하여 관련 SurfaceTexture
이상 보류를 얻어서, 설정에 onSurfaceTextureAvailable(...)
외부 MediaPlayer
객체입니다. 나는 그것을 시도했지만 항상 null
을 반환합니다. 이 일을 위해 내가해야 할 일이 있습니까?
는 어떻게 그것을 놓칠 수 있습니다. 고마워요 !!! – Swapnil