这是视频播放课程
public class CustomVideo extends VideoView {
public VideoView viewHolder ;
public boolean flag;
Uri video;
public void playVideo(final Activity activity,VideoView resource, final int path,final ImageView image1,final ImageView image2,final ImageButton button,final ImageButton button1, int id) {
viewHolder=resource;
viewHolder = (VideoView) activity.findViewById(id);
button.setEnabled(false);
button.setClickable(false);
button1.setEnabled(false);
button1.setClickable(false);
// viewHolder.setZOrderOnTop(false);
// RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(504,279);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_TOP, R.id.imageView_bg_plain);
params.addRule(RelativeLayout.ALIGN_BOTTOM, R.id.imageView_bg_plain);
params.addRule(RelativeLayout.ALIGN_LEFT, R.id.imageView_bg_plain);
params.addRule(RelativeLayout.ALIGN_RIGHT, R.id.imageView_bg_plain);
//params.addRule(RelativeLayout.CENTER_VERTICAL, RelativeLayout.TRUE);
// params.setMargins(0, 98, 0, 0);
viewHolder.setLayoutParams(params);
viewHolder.invalidate();
viewHolder.setVisibility(View.VISIBLE);
viewHolder.bringToFront();
video = Uri.parse("android.resource://" + activity.getPackageName() + "/" + path);
// introVideo.setMediaController(mediaController);
viewHolder.setVideoURI(video);
viewHolder.requestFocus();
viewHolder.start();
viewHolder.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(final MediaPlayer mp1) {
// TODO Auto-generated method stub
button.setEnabled(true);
button.setClickable(true);
button1.setEnabled(true);
button1.setClickable(true);
// viewHolder.setZOrderOnTop(true);
viewHolder.setVisibility(View.GONE);
image1.setVisibility(View.VISIBLE);
image2.setVisibility(View.VISIBLE);
}
});
}
这种自定义方法我呼吁在每个活动中显示视频 ,我有大约50个从这种方法播放视频的活动&类。 但问题是在实时之前完成视频。
我的XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/letter_lesson_screen2"
android:id="@+id/rid"
android:layout_height="match_parent"
android:layout_width="match_parent"
tools:context=".Letter_lesson1_activity" >
<RelativeLayout
android:background="@drawable/bar_alphabet"
android:id="@+id/bar_alphabet"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_height="40dp"
android:layout_width="match_parent"
android:paddingTop="7dp" >
<LinearLayout
android:id="@+id/linelay_bar_alphabet"
android:layout_alignBottom="@+id/bar_alphabet"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="horizontal" >
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:background="@drawable/toolbar"
android:id="@+id/toolbar"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_height="35dp"
android:layout_width="fill_parent"
android:paddingLeft="15dp"
android:paddingRight="15dp" >
<ImageButton
android:background="@android:color/transparent"
android:id="@+id/imagebutton_back"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/but_back" />
<ImageButton
android:background="@android:color/transparent"
android:id="@+id/imgbutton_help"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/help1" />
<ImageButton
android:background="@android:color/transparent"
android:id="@+id/imgbutton_home"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/home" />
<ImageButton
android:background="@android:color/transparent"
android:id="@+id/imageButton_letter_pervious"
android:layout_alignParentTop="true"
android:layout_height="30dp"
android:layout_marginRight="29dp"
android:layout_toLeftOf="@+id/imgbutton_help"
android:layout_width="30dp"
android:scaleType="fitXY"
android:src="@drawable/previous" />
<ImageButton
android:background="@android:color/transparent"
android:id="@+id/imageButton_letter_next"
android:layout_alignParentTop="true"
android:layout_height="30dp"
android:layout_marginLeft="25dp"
android:layout_toRightOf="@+id/imgbutton_help"
android:layout_width="30dp"
android:scaleType="fitXY"
android:src="@drawable/next" />
<ImageButton
android:background="@android:color/transparent"
android:id="@+id/imageButton_letter_rewind"
android:layout_alignTop="@+id/imgbutton_help"
android:layout_height="wrap_content"
android:layout_marginRight="30dp"
android:layout_toLeftOf="@+id/imageButton_letter_pervious"
android:layout_width="wrap_content"
android:src="@drawable/back" />
<ImageButton
android:background="@android:color/transparent"
android:id="@+id/imageButton_letter_forward"
android:layout_alignParentTop="true"
android:layout_height="wrap_content"
android:layout_marginLeft="28dp"
android:layout_toRightOf="@+id/imageButton_letter_next"
android:layout_width="wrap_content"
android:src="@drawable/fwd" />
</RelativeLayout>
<VideoView
android:id="@+id/videoView1"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_height="276dp"
android:layout_width="500dp" />
<VideoView
android:id="@+id/videoView2"
android:layout_alignTop="@+id/videoView1"
android:layout_centerHorizontal="true"
android:layout_centerInParent="true"
android:layout_height="276dp"
android:layout_width="500dp" />
<VideoView
android:id="@+id/videoView_letter"
android:layout_centerVertical="true"
android:layout_height="150dp"
android:layout_marginBottom="155dp"
android:layout_marginLeft="180dp"
android:layout_marginTop="148dp"
android:layout_width="100dp" />
<ImageView
android:id="@+id/imageView_bg_plain"
android:layout_centerHorizontal="true"
android:layout_height="279dp"
android:layout_marginTop="98dp"
android:layout_width="504dp"
android:scaleType="fitXY"
android:src="@drawable/bg_line" />
<ImageView
android:id="@+id/imageView_letter"
android:layout_centerHorizontal="true"
android:layout_height="100dp"
android:layout_marginTop="180dp"
android:layout_width="wrap_content"
android:src="@drawable/b_letter" />
<ImageView
android:id="@+id/imageView_bg_lines"
android:layout_centerHorizontal="true"
android:layout_height="279dp"
android:layout_marginTop="98dp"
android:layout_width="504dp"
android:scaleType="fitXY"
android:src="@drawable/bg_line" />
<ImageView
android:id="@+id/imageView_letter_image"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/ball" />
<ImageView
android:id="@+id/imageView_cons"
android:layout_centerHorizontal="true"
android:layout_height="130dp"
android:layout_marginTop="145dp"
android:layout_width="150dp"
android:src="@drawable/b_cons" />
<ImageView
android:id="@+id/imageView_2letter"
android:layout_height="130dp"
android:layout_marginLeft="150dp"
android:layout_marginTop="145dp"
android:layout_width="wrap_content"
android:src="@drawable/b_cons" />
<ImageView
android:id="@+id/img_help"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:onClick="onclick"
android:scaleType="fitXY"
android:src="@drawable/helpscreen1"
android:visibility="gone" />
<ImageView
android:id="@+id/imageView_2_letter"
android:layout_height="70dp"
android:layout_marginTop="210dp"
android:layout_toRightOf="@+id/imageView_cons"
android:layout_width="wrap_content"
android:src="@drawable/bb" />
</RelativeLayout>
请尽快给我灵魂,谢谢。
答案 0 :(得分:1)
尝试使用VideoView.setOnPreparedListener,然后从那里开始播放视频。
虽然我发现实现自己的视频VideoView更好的解决方案,只需创建自己的MediaPlayer,将SurfaceView绑定到它,如果需要添加MediaController,我创建自己的按钮控件以及搜索栏。创建自己的持有者(你可以从SurfaceView获得它)并将你的Callback转换为持有者。
只是谷歌这种方法获取更多信息,有一些很好的教程,我发现它比这个VideoView shizzle更可行。此外,您可以使用MediaPlayer中的setDataSource,但您无法在VideoView上使用。
无论哪种方式,如果你使用我提到的方法或你已经使用的方法,remmeber使用prepare()方法