android 视频 播放 (VideoView的小实例)

本文介绍了一个简单的Android视频播放应用实现过程。通过创建一个名为VideoPlayer的项目,利用VideoView控件实现了基本的视频播放功能,并展示了如何设置视频源及控制播放。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不说,不浪费时间,直接看实例
(一些废话:最近,学习android的视频播放功能,网上内容繁多,质量参差不齐,且比较零碎,很难有个整体的认识,由于自己感觉学的很乱,所以想写下这篇博客,整理下思路,顺便分享给亲爱的你。
承谢阅读!!)

来看看*

实例

*吧
1 新建一个项目VideoPlayer,包含一个xml和MainActivity.java
2 `
xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    //只定义一个VideoView控件
    <VideoView
        android:id="@+id/Video_player"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

3 MianActivity 类

package www.zhazha.com.videoplayer;

import android.content.pm.ActivityInfo;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.MediaController;
import android.widget.VideoView;

public class MainActivity extends AppCompatActivity {
    private VideoView videoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /* 以下代码需要写在setContentView();之前 */
        /* 设置全屏 */
//        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        /* 设置屏幕常亮 *//* flag:标记 ; */
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        //加载视图
        setContentView(R.layout.video_layout);
        /* 获取组件对象 */
     videoView=(VideoView)findViewById(R.id.Video_player);
        /* 获取MediaController对象,控制媒体播放 */
        MediaController mediaController = new MediaController(this);

        videoView.setMediaController(mediaController);
         /* 设置URI , 指定数据 */
        videoView.setVideoURI(Uri.parse("/storage/emulated/0/Download/zha.3gp"));

        /* 开始播放视频 */
        videoView.start();

        /*  请求获取焦点 */
        videoView.requestFocus();
    }
}

4效果图

效果图

为了避免大家浪费时间,直接先看下面的 Gif,略大,请耐心点。看完后,若你觉得会需要到,那么就请听我继续。gif 链接 http://123.57.244.105:8081/commentthumb/GIF.gifgit显示,略大,请耐心GitHub 链接废话一句:这个显示只是其中一部分,重点是:FFmpeg Camera 的录制部分,所以,你的星星(star)也是一种更新通知 (我通知你)。https://github.com/af913337456/WeChatVideoView功能点如果你看完上面的gif图,你会发现如下几点功能 (Function list):1,直观的播放前,可以显示封面缩略图播放时,如果还没有本地缓存,那么先进行下载下载过程中,显示圆型区域进度效果下载后,播放完毕后可以循环播放播放已经播放过的,是具备本地缓存的,也就是既能播放网络,也能播放本地2,隐藏的低耗电量低内存占用无延迟图与视频切换低耦合,高内聚,几行代码接入,一共3个类解析直观的功能点,几乎就是和新版微信的一样,从朋友圈点击一个视频,然后进入到一个 Activity 页面进行加载以及播放。为什么低耗电量和低内存占用?因为采用的是 SurfaceView 而不是 TextureView,图与视频切换的切换延迟也是这个原因。在你的 Activity 中这样使用这样就会以 id 为 activity_main 的 Relativelayout 为父容器装载。因为要避免内存泄露,所以你还需要做完下面的一些步骤,不会超过6行代码。技术点 (可以不看)1,下载操作:自定义 AsyncTask。PS:AsyncTask 比 Thread handler 重量级却方便(回调进度),但是,如果是 即放即用,结束即销毁,那么,no need to think about this;2,视频播放组合拳: surfaceView mediaPlayersurfaceView 用作显示,mediaPlayer 用来解码两者关系: mediaPlayer 绑定 surfaceView。为什么不用 TextrueView?3,进度区域自定义 View,3个画笔绘制,一个圆,一个边,一个扇区。作者:林冠宏 / 指尖下的幽灵掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8博客:http://www.cnblogs.com/linguanh/GitHub : https://github.com/af913337456/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值