手记

VideoView

一、VideoView的应用:

        1、在布局文件中设计相关布局;

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <LinearLayout

  3.    xmlns:android="http://schemas.android.com/apk/res/android"

  4.    xmlns:tools="http://schemas.android.com/tools"

  5.    android:layout_width="match_parent"

  6.    android:layout_height="match_parent"

  7.    android:orientation="vertical"

  8.    tools:context="com.qf.day_01.MainActivity">


  9.    <VideoView

  10.        android:layout_width="wrap_content"

  11.        android:layout_height="wrap_content"

  12.        android:id="@+id/vv_player"/>

  13.    <LinearLayout

  14.        android:layout_width="match_parent"

  15.        android:layout_height="wrap_content">

  16.        <Button

  17.            android:layout_width="0dp"

  18.            android:layout_weight="1"

  19.            android:layout_height="wrap_content"

  20.            android:text="播放"

  21.            android:onClick="play"/>

  22.        <Button

  23.            android:layout_width="0dp"

  24.            android:layout_weight="1"

  25.            android:layout_height="wrap_content"

  26.            android:text="暂停"

  27.            android:onClick="pause"/>

  28.    </LinearLayout>


  29. </LinearLayout>

        2、在Java代码中查找相关控件

 vv_player = (VideoView) findViewById(R.id.vv_player);

        3、设置视频源

                1>使用本地的视频资源

                        在res文件夹下新建raw文件夹,将VideoView要播放的文件放入到此文件夹内,在此文件夹内的所有文件都会生成R.XXX.XX

        Uri mUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.mtv);        vv_player.setVideoURI(mUri);

                2>使用SD卡中的资源

vv_player.setVideoPath();

                3>使用网络资源

        Uri uri = Uri.parse("http://10.7.153.60:8080/share/mtv.mp4");        vv_player.setVideoURI(uri);

        4、开启播放

        //2.开启播放        vv_player.start();

        5、编写暂停和继续播放方法

  1.    /**

  2.     * 暂停播放的方法

  3.     * @param view

  4.     */

  5.    public void pause(View view) {

  6.        //暂停

  7.        vv_player.pause();

  8.        //这个方法是完全停止播放,只有重新设置uri,才可以继续播放

  9. //        vv_player.stopPlayback();

  10.    }


  11.    /**

  12.     * 继续播放的方法

  13.     * @param view

  14.     */

  15.    public void play(View view) {

  16.        //回复焦点,不能重新播放

  17. //        vv_player.resume();

  18.        //开始,也是当暂停之后继续开始

  19.        vv_player.start();

  20.    }

  21. }

二、自定义VideoView的应用:

        1、创建一个类继承于VideoView,并重写里面的onMesure方法;

  1. import android.content.Context;

  2. import android.util.AttributeSet;

  3. import android.widget.VideoView;


  4. /**

  5. * 自定义VideoView

  6. */

  7. public class FullScreenVideoView extends VideoView {

  8.    public FullScreenVideoView(Context context) {

  9.        super(context);

  10.    }


  11.    public FullScreenVideoView(Context context, AttributeSet attrs) {

  12.        super(context, attrs);

  13.    }


  14.    /**

  15.     * 用来测量宽高

  16.     * @param widthMeasureSpec

  17.     * @param heightMeasureSpec

  18.     */

  19.    @Override

  20.    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {

  21.        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

  22.        int wSize = MeasureSpec.getSize(widthMeasureSpec);

  23.        int hSize = MeasureSpec.getSize(heightMeasureSpec);

  24.        //自己设置宽高

  25.        setMeasuredDimension(wSize,hSize);

  26.    }

  27. }

        2、在布局文件中使用自定义的VideoView

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <RelativeLayout

  3.    xmlns:android="http://schemas.android.com/apk/res/android"

  4.    xmlns:tools="http://schemas.android.com/tools"

  5.    android:id="@+id/activity_videoview"

  6.    android:layout_width="match_parent"

  7.    android:layout_height="match_parent"

  8.    android:paddingBottom="@dimen/activity_vertical_margin"

  9.    android:paddingLeft="@dimen/activity_horizontal_margin"

  10.    android:paddingRight="@dimen/activity_horizontal_margin"

  11.    android:paddingTop="@dimen/activity_vertical_margin"

  12.    tools:context="com.qf.day_01.Main3Activity">


  13.    <com.qf.day_01.FullScreenVideoView

  14.        android:layout_width="match_parent"

  15.        android:layout_height="match_parent"

  16.        android:id="@+id/vv_player"/>


  17. </RelativeLayout>

        3、在Java代码中找到控件并进行相关操作

  1. public class Main3Activity extends AppCompatActivity {


  2.    private VideoView mVideoView;

  3.    private Uri mUri;


  4.    @Override

  5.    protected void onCreate(Bundle savedInstanceState) {

  6.        super.onCreate(savedInstanceState);

  7.        setContentView(R.layout.activity_main3);


  8.        mVideoView = (VideoView) findViewById(R.id.vv_player);


  9.        //1.设置视频源

  10.        mUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.mtv);

  11.        mVideoView.setVideoURI(mUri);


  12.        //媒体控制器。可以控制播放的进度

  13.        MediaController mController = new MediaController(this);


  14.        //设置给VideoView

  15.        mVideoView.setMediaController(mController);


  16.        //给媒体控制器设置anchorView

  17.        mController.setAnchorView(mVideoView);


  18.        //开始视频播放

  19.        mVideoView.start();


  20. //        MediaController可以用到控制播放的进度:

  21. //            1.会自动隐藏

  22. //            2.可以拖动

  23. //            3.可以暂停,可以播放,可以快进和快退

  24.    }


  25. }

原文链接:http://www.apkbus.com/blog-815579-61898.html

0人推荐
随时随地看视频
慕课网APP