2013-02-22 14 views
6

MediaPlayer.setVideoScalingMode (modalità int) è utile per API 16 e superiori consentendo di scegliere tra VIDEO_SCALING_MODE_SCALE_TO_FIT e VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING.Come ottenere setVideoScalingMode per le versioni precedenti di Android

C'è un modo per ottenere la stessa funzionalità per Android prima dell'API 16?

Ho provato a impostare le dimensioni di SurfaceView utilizzate da un MediaPlayer, ma MediaPlayer ritaglia il video originale per adattarlo a qualsiasi dimensione dello SurfaceView.

risposta

0

affrontato con lo stesso problema, ottenere la soluzione con questo articolo http://blog.lemberg.co.uk/surface-view-video-cropping Ma con piccolo cambiamento: Per impostazione predefinita TextureView ha già scalare per fare video in forma proporzioni dello schermo, in modo da ottenere a sinistra/destra o in alto/strisce fondo per video alti/ampi. E quando usi l'approccio dall'articolo, ottieni la scala TextureView + la scala calcolata da updateTextureViewSize, quindi un indice di dimensioni molto grandi. La mia soluzione per questo problema è quello di calcolare il valore scala relativa:

float div = Math.max(scaleX,scaleY)-Math.min(scaleX, scaleY); 
matrix.setScale(1+div,1+div,pivotPointX,pivotPointY); 

invece di

matrix.setScale(scaleX, scaleY, pivotPointX, pivotPointY); 
Problemi correlati