2011-06-28 12 views
11

Estoy usando VideoView para mostrar reproducir un mp4 local y también estoy usando MediaController. La barra de control multimedia no se muestra debajo de mi video clip, sino en el centro de la pantalla. Usé setAnchorView para adjuntarlo a mi videoView, pero eso no tuvo ningún efecto. ¿Cómo coloco mi controlador de medios para estar directamente debajo de mi videoview?MediaController Posicionamiento

public class VideoDemo extends Activity { 
private VideoView video; 
private MediaController ctlr; 

@Override 
public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    getWindow().setFormat(PixelFormat.TRANSLUCENT); 
    setContentView(R.layout.main); 

    File clip=new File(Environment.getExternalStorageDirectory(), 
             "test.mp4"); 

    if (clip.exists()) { 
     video=(VideoView)findViewById(R.id.video); 
     video.setVideoPath(clip.getAbsolutePath()); 

     ctlr=new MediaController(this, false); 
     ctlr.setAnchorView(video); 
     ctlr.setMediaPlayer(video); 
     video.setMediaController(ctlr); 
     video.requestFocus(); 
    } 
} 
} 

y mi diseño es

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="400dp" 
    android:layout_height="400dp" 
    android:background="#fff" 
    > 
<VideoView 
    android:id="@+id/video" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
</LinearLayout> 
+2

¿Alguna vez descubrió esto? Estoy creando una aplicación de tableta y quiero hacer exactamente lo mismo. No hay problema para reproducir el video, solo quiero que los controles se muestren en la vista de video. – Brian

+0

Mismo problema para la tableta aquí. :(¿Alguien ha encontrado una solución? – Helden

Respuesta

0

¿Se puede probar esto:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="400dp" 
    android:layout_height="400dp" 
    android:background="#fff" 
    android:orientation="vertical" > 

    <VideoView 
     android:id="@+id/video" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" /> 

</LinearLayout> 

Luego se agrega el MediaController utilizando como Disposición Parámetros

  • layout_width: fill_parent
  • layout_height: wrap_content
  • layout_weight: 0

Espero que esto ayude!

+0

¿Alguna suerte aún con esto? –

1

Para que una aplicación de tableta muestre el controlador de medios a pantalla completa en lugar de a la mitad, debe colocar una línea uses-sdk en su AndroidManifest.xml y seleccionar una versión de sdk que tenga en cuenta la existencia de Dispositivos de mayor resolución: de lo contrario, muchas vistas están limitadas a 480x320

Editar: anteriormente había publicado problemas al agregar uses-sdk, lo que causaba que el rebobinado/pausa/avance se mostrara sin un deslizador de progreso debajo, pero resulta que en una tableta particular adaptada a Android, la barra de botones suave de inicio/menú/etc. simplemente cubría la mitad inferior del controlador de medios.

1

Probar:

ctrl.setPadding(x, y, z, w) 
0

tengo una solución para esto, añadir una disposición vertical a continuación, poner el VideoView en esa disposición, el controlador de medios aparecerá en la parte inferior de la presentación en la que se muestra el vídeo THW.