Android Studio 用 VideoView 控件播放本地视频 - MilkeZhang 的网络笔记

记录一下,Android Studio通过使用VideoView控件播放本地的视频工鞥呢注意两点,是一个是视频的宽度和高度,在VideoView中,有一个初始设置,但是最终还是要跟内部的视频一致第二个点,不建议存放过大的资源视频视频文件demo的功能除了播放视频文件之外,还有继续播放的功能布局代码

Android Studio 用 VideoView 控件播放本地视频

Android Studio 用 VideoView 控件播放本地视频

阅读:434  点赞:0   留言:0


记录一下,Android Studio通过使用VideoView控件播放本地的视频工鞥呢


注意两点,是一个是视频的宽度和高度,在VideoView中,有一个初始设置,但是最终还是要跟内部的视频一致

第二个点,不建议存放过大的资源视频视频文件


demo的功能除了播放视频文件之外,还有继续播放的功能

布局代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="25dp"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:text="【DEMO视频播放】"
                android:textSize="20sp" />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginStart="25dp"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:text="【H264】"
                android:textSize="20sp" />
            <VideoView
                android:id="@+id/mdeia_video_player__videoView264"
                android:layout_width="match_parent"
                android:layout_height="600dp" />
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="50dp"
                android:orientation="horizontal">

                <Button
                    android:id="@+id/mdeia_video_player__btn_DEMO1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="5dp"
                    android:layout_marginEnd="5dp"
                    android:layout_weight="1"
                    android:text="DEMO1" />

                <Button
                    android:id="@+id/mdeia_video_player__btn_DEMO2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="5dp"
                    android:layout_marginEnd="5dp"
                    android:layout_weight="1"
                    android:text="DEMO2" />

                <Button
                    android:id="@+id/mdeia_video_player__btn_DEMO3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="5dp"
                    android:layout_marginEnd="5dp"
                    android:layout_weight="1"
                    android:text="DEMO3" />

                <Button
                    android:id="@+id/mdeia_video_player__btn_DEMO4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="5dp"
                    android:layout_marginEnd="5dp"
                    android:layout_weight="1"
                    android:text="DEMO4" />

                <Button
                    android:id="@+id/mdeia_video_player__btn_DEMO5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="5dp"
                    android:layout_marginEnd="5dp"
                    android:layout_weight="1"
                    android:text="DEMO5" />

            </LinearLayout>

            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_marginStart="25dp"
                android:textSize="20dp"
                android:text="dsaf" />
        </LinearLayout>
    </ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>


java

package com.example.aeke.Media;

import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;

import com.example.aeke.Device.Com.SerialPort;
import com.example.aeke.Device.MainMenu;
import com.example.aeke.R;

import androidx.appcompat.app.AppCompatActivity;

public class Video_Player extends AppCompatActivity {

    VideoView videoView264;

    MediaController MediaController264;

    Button btn_DEMO1;
    Button btn_DEMO2;
    Button btn_DEMO3;
    Button btn_DEMO4;
    Button btn_DEMO5;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.media_video_player);

        btn_DEMO1 = (Button)findViewById(R.id.mdeia_video_player__btn_DEMO1);
        btn_DEMO2 = (Button)findViewById(R.id.mdeia_video_player__btn_DEMO2);
        btn_DEMO3 = (Button)findViewById(R.id.mdeia_video_player__btn_DEMO3);
        btn_DEMO4 = (Button)findViewById(R.id.mdeia_video_player__btn_DEMO4);
        btn_DEMO5 = (Button)findViewById(R.id.mdeia_video_player__btn_DEMO5);

        Init_btn();
    }


    public  void Init_btn()
    {
        btn_DEMO1.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                PlayDEMO(1);
            }
        });
        btn_DEMO2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                PlayDEMO(2);
            }
        });
        btn_DEMO3.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                PlayDEMO(3);
            }
        });
        btn_DEMO4.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                PlayDEMO(4);
            }
        });
        btn_DEMO5.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                PlayDEMO(5);
            }
        });
    }


    public  void PlayDEMO(int i)
    {
        videoView264= (VideoView) findViewById(R.id.mdeia_video_player__videoView264);


        String file= Environment.getExternalStorageDirectory().getPath()+ "/raw/h264.mp4";//oppo.3gp视频播放的名字
        String uri = "android.resource://" + getPackageName() + "/" + R.raw.demo_1;
        switch (i)
        {
            case 1:
                uri = "android.resource://" + getPackageName() + "/" + R.raw.demo_1;
                break;
            case 2:
                uri = "android.resource://" + getPackageName() + "/" + R.raw.demo_2;
                break;
            case 3:
                uri = "android.resource://" + getPackageName() + "/" + R.raw.demo_3;
                break;
            case 4:
                uri = "android.resource://" + getPackageName() + "/" + R.raw.demo_4;
                break;
            case 5:
                uri = "android.resource://" + getPackageName() + "/" + R.raw.demo_5;
                break;
        }


        //String uri = "android.resource://" + getPackageName() + "/" +file;

        videoView264.setVideoURI(Uri.parse(uri));

        //MediaController mc = new MediaController(this);



        MediaController264= new MediaController(this);
        MediaController264.setAnchorView(videoView264);//设置控制器 控制的是那一个videoview
        videoView264.setMediaController(MediaController264);//设置videoview的控制器为MediaController

        videoView264.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
        {
            @Override
            public void onCompletion(MediaPlayer mp)
            {
                switch (i)
                {
                    case 1:
                    case 4:
                    case 2:
                    case 3:
                        ShowToast("下一首");
                        PlayDEMO(i+1);
                        break;
                    case 5:
                        ShowToast("播放完毕");
                        break;
                }
                //播放结束后的动作
            }
        });

        videoView264.start();
    }

    /**
     * 提示输出
     */
    public void ShowToast(String Message) {
        Toast.makeText(this,Message,  Toast.LENGTH_LONG).show();
    }
}

编写于:2022/12/16 16:19:29
发布 IP 属地:

版权声明

本站内容均来自网络转载或网友提供,如有侵权请及时联系我们删除!本站不承担任何争议和法律责任!


艾金森

每一个童年的梦想都值得用青春去捍卫!




06-25关于最近key4421 的日记 2023/09/23 18:56:22微信放下摆烂法学生的摸鱼打工日常22023/08/30--周三雪尽染 的日记 2023/06/23 20:42:0223/06/04--音乐会/小鸟鲤子2023.5.15 清净心的愉悦2023.4.26 篮球日记 阴 没心情秋秋 的日记 2023/04/25 23:09:412023.4.18 阴你是否真正做到了?key4421 的日记 2023/09/222023/07/17--周一兄妹日常2020年12月17日雪尽染 的日记 2023/07/06 23:26:46追悔的年华 的日记 2023/07/15 01:32:19记一个大神兄妹日常2020年12月6日2023.5.23 (5)关于性格兄妹日常2020年12月8日完美的一周2023/5/25 复盘迷雾重重2023/6/27 复盘2023/4/20 复盘我的情有独钟款2023/06/02--周五--晴天Wish You Were Gay lyrics学习笔记 2 - 10 Common ADHD Symptoms in Adults (with real-life examples)Java Number & Math 类哎呀我头疼PDF转Excel十大发射点发生阿斯蒂芬《怒呛人生》2021年刑诉真题初步答题思路Wandlungen der Familie学习笔记 1 - Narcissists - 关于自我的属性炎热的夏季容易上火 日常应该如何预防以及护理满山的猴子我腚最红 的笔记 2023/05/30 16:18:46社科大考博Summary训练——2016年A卷平行时空就只为递过来一只耳机套?【成本加激励费用合同 】与【成本加奖励费用合同】 区别像蜡笔小新超声心动图 存档专心致志的努力-kom 的笔记 2023/06/12 10:10:17如何挑选食盐?人的不自知如何挑选酱油?满山的猴子我腚最红 的笔记 2023/07/08 21:20:13关于用户“PTY” 对大学疑问的回信2020-2023心情随笔记录整理js promise中如何取到[[PromiseValue]]好喜欢书单超爱这种动感十足的图片,细节拉满哈哈哈哈哈哈情绪流12015年画的电路板,记录一下