-1

这是视频播放课

 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>

请尽快给我灵魂,在此先感谢。

4

1 回答 1

1

尝试使用 VideoView.setOnPreparedListener,然后从那里开始播放视频。

尽管我发现实现自己的排序 VideoView 是更好的解决方案,只需创建自己的 MediaPlayer,将 SurfaceView 绑定到它,如果需要添加 MediaController,我创建了自己的按钮控件以及搜索栏。创建您自己的持有人(您可以从 SurfaceView 获取它)并将您的回调创建给持有人。

只需在谷歌上搜索这种方法以获取更多信息,有一些关于它的不错的教程,我只是觉得它比这个 VideoView shizzle 更真实。此外,您可以使用不能在 VideoView 上使用的 MediaPlayer 中的 setDataSource。

无论哪种方式,如果您使用我提到的方法或您已经使用的方法,请记住使用 prepare() 方法

于 2013-10-15T12:15:11.403 回答