Hallo,
ich verwende ein SurfaceView zum Abspielen eines Videos mit dem mediaplayer, nun woltle ich AspectModes und Zoom einbaun, Aspect is auch kein Problem wenn int zoomfactor 0 ist, klappts so:
mVideoWidth = mp.getVideoWidth();
mVideoHeight = mp.getVideoHeight();
mscreenWidth = getWindowManager().getDefaultDisplay().getWidth();
mscreenHeight = getWindowManager().getDefaultDisplay().getHeight();
android.view.ViewGroup.LayoutParams lp = movie_screen.getLayoutParams();
lp.width = mscreenWidth + Zoomfactor;
if (cur_aspectmode == 1) {
//aspect 4:3
lp.height = ((mscreenWidth / 4) * 3) + Zoomfactor;
movie_screen.setLayoutParams(lp);
}
if (cur_aspectmode == 2) {
//aspect 16:9
lp.height = ((mscreenWidth / 16) * 9) + Zoomfactor;
movie_screen.setLayoutParams(lp);
}
if (cur_aspectmode == 0) {
//stretched
lp.height = mscreenHeight + Zoomfactor;
movie_screen.setLayoutParams(lp);
}
Alles anzeigen
nun aber wenn ich Zoomfactor mit einer seekbar benutze, also mehr als 0 als Zoomfactor nehme, dann wird das videobild auch vergrößert optisch, aber das video bleibt stehen, bzw das rendering, im hintergrund läuft das video aber weiter, wenn ich zoom wieder auf 0 mach, seh ich auch das laufende video wieder. Also ist es möglich das das Surfaceview probleme hat, wenn es ausserhalb des Bildschirms kommt? Oder sowas in der art? Habe auch mal versucht erst pause dann zoom dann wieder play, bringt auch nichts...
Wär tool wenn sich da jemand auskennt / eine Lösung hat.
Gruß
tom