2011-06-28 22 views
11

Używam VideoView do pokazania odtwarzania lokalnego mp4 i używam również MediaController. Pasek sterowania multimediami nie wyświetla się pod moim klipem wideo, ale na środku ekranu. Użyłem setAnchorView do dołączenia go do mojego wideoView, ale to nie miało żadnego wpływu. Jak pozycjonować mój kontroler medac na bezpośrednio pod moim wideoview?Pozycjonowanie MediaController

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(); 
    } 
} 
} 

i mój układ jest

<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

Czy kiedykolwiek to rozgryzłeś? Tworzę aplikację na tablet i chcę zrobić dokładnie to samo. Nie ma problemu z odtwarzaniem wideo, chcę tylko, żeby kontrolki wyświetlały się w widoku wideo. – Brian

+0

Ten sam problem dotyczy tabletu. :(Ktoś znalazł rozwiązanie jeszcze? – Helden

Odpowiedz

0

można spróbować to:

<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> 

Następnie dodać MediaController stosując jako układ Params

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

Nadzieja to pomaga!

+0

Jeszcze szczęścia z tym? –

1

Aby uzyskać aplikację na tablet, aby wyświetlić kontroler multimediów na pełnym ekranie, a nie na środku, musisz umieścić w swoim AndroidManifest.xml wiersz uses-sdk i wybrać wersję SDK, która jest świadoma istnienia urządzenia o wyższej rozdzielczości - w przeciwnym razie wiele widoków jest ograniczona do 480x320

Edytuj: Poprzednio pisałem o problemach z dodaniem funkcji uses-sdk w wyniku przewijania do tyłu/wstrzymania/przekazania bez suwaka postępu, ale Okazuje się, że na konkretnym tablecie przystosowanym do androidów pasek przycisków miękkiego menu głównego/menu/etc po prostu zakrywał dolną połowę kontrolera mediów.

0

Mam rozwiązanie dla tego, dodać pionowy układ następnie umieścić videoview w tym układzie, kontroler mediów pojawi się w dolnej części układu, gdzie wyświetlany jest THW wideo.