Używam MediaPlayer do odtwarzania wideo w TextureView. TextureView ma stały rozmiar, a rozmiary filmów są różne. Odtwarza wideo, ale problem polega na tym, że fragmenty wideo znajdują się na zewnątrz, a wideo nie jest przeskalowane, aby pasowało do TextureView.Dopasuj wideo do TextureView (jego części znajdują się na zewnątrz (niewidoczne)) za pomocą MediaPlayer
Czarne prostokąty + zdjęcie (wideo) to TextureView. Czerwony prostokąt jest rzeczywistym wideo, narysowałem go oczywiście, aby pokazać problem.
Pokazuje więc tylko część filmu i nie pokazuje pozostałej części.
Chcę, aby cały film był widoczny i zachował oryginalny współczynnik skali.
Dzięki.
// The class implements SurfaceTextureListener
// Set TextureView to MediaPlayer
m_TextureView.setSurfaceTextureListener(this);
@Override
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width, int height) {
m_MediaPlayer = new MediaPlayer();
m_MediaPlayer.setSurface(new Surface(surfaceTexture));
}
// Play video
m_MediaPlayer.reset();
m_MediaPlayer.setDataSource(videoFilePath);
m_MediaPlayer.prepare();
m_MediaPlayer.start();
pokaż, co zrobiłeś do tej pory – pskink
pskink - dodano mały kod, nic specjalnego. –
czy wypróbowałeś setTransform? – pskink