Android如何设置简易视频播放器

先自定义一个VideoView用于设置和消除缩略图:https://blog.csdn.net/wunghao8/article/details/40109759

xml文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="5dp"
    android:gravity="center_vertical"
    android:background="@color/white">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <MyClass.CustomVideoView
            android:id="@+id/videoView"
            android:layout_width="match_parent"
            android:layout_height="300dp" />
    </RelativeLayout>

</LinearLayout>

java文件

package com.example.administrator.myapplication2;

import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.media.MediaMetadataRetriever;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.MediaController;
import android.widget.VideoView;

import java.util.HashMap;

import MyClass.CustomVideoView;

public class Test extends AppCompatActivity{

    private CustomVideoView videoView;
    private MediaController mediaController;

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

    private void bindViews() {
        videoView = (CustomVideoView) findViewById(R.id.videoView);
        videoView.setPlayPauseListener(new CustomVideoView.PlayPauseListener() {
            @Override
            public void onPlay() {
                //开始播放之后消除背景
                videoView.setBackground(null);
            }
            @Override
            public void onPause() {
                System.out.println("Pause!");//our needed process when the video is paused
            }
        });

        String videoUrl = "xxx";
        Bitmap bitmap = null;
        //videoView.setVideoURI(Uri.parse(videoUrl));
        videoView.setVideoPath(videoUrl);
        //设置视频缩略图
        MediaMetadataRetriever retriever = new MediaMetadataRetriever();
        retriever.setDataSource(videoUrl, new HashMap());
        bitmap = retriever.getFrameAtTime();
        videoView.setBackground(new BitmapDrawable(getResources(),bitmap));
        mediaController = new MediaController(this);
        videoView.setMediaController(mediaController);
        mediaController.setMediaPlayer(videoView);
    }
}

VideoView外部套一层RelativeLayout,加上mediaController.setMediaPlayer(videoView);

是为了将进度条放在视频下方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凛风业火

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值