-1
Ich versuche, eine Videowiedergabe nur anzuzeigen, wenn das Video abgespielt wird. Wenn ich auf ein Element der Gridview klicke, wird das Video gestartet und die Videoansicht wird angezeigt, aber wenn das Video stoppt, wird es nicht mehr angezeigt. Hier ist der Code: Hauptaktivität:Videoansicht nur dann sichtbar machen, wenn Video abgespielt wird
public class MainActivity extends AppCompatActivity {
public Integer[] mVideo = {
R.raw.clesella, R.raw.simonino
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(new VideoAdapter(this));
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final VideoView mVideoView2 = (VideoView) findViewById(R.id.video);
// VideoView mVideoView = new VideoView(this);
String uriPath = "android.resource://"+ getPackageName()+"/"+mVideo[position];
Uri uri2 = Uri.parse(uriPath);
mVideoView2.setVideoURI(uri2);
mVideoView2.requestFocus();
mVideoView2.start();
mVideoView2.postDelayed(new Runnable() {
public void run() {
mVideoView2.setVisibility(View.VISIBLE);
}
}, mVideoView2.getDuration());
}
Hier wird das Layout:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.graduation.nakama.harrygraduation.MainActivity">
<VideoView
android:id="@+id/video"
android:layout_width="wrap_content"
android:layout_height="250dp"
android:visibility="invisible"
android:layout_alignParentStart="true"
android:layout_marginTop="100dp" />
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center"
android:layout_centerHorizontal="true" />
, wie ich aus dem Code sehen Sie mVideoView2.setVisibility (View.GONE) gesetzt haben ; –
Ok danke, aber genau wo und wie muss ich es einstellen? Denn wenn ich es nach mVideoView2.postDelayed setze, wird das Videobild sofort geschlossen. Danke für die Hilfe –