每天进步一点----- VideoView

package com.example.playvideotest;

import java.io.File;

import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.VideoView;
import android.app.Activity;

public class MainActivity extends Activity implements OnClickListener {

    private VideoView videoView;

    private Button play;

    private Button pause;

    private Button replay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        play = (Button) findViewById(R.id.play);
        pause = (Button) findViewById(R.id.pause);
        replay = (Button) findViewById(R.id.replay);
        videoView = (VideoView) findViewById(R.id.video_view);
        play.setOnClickListener(this);
        pause.setOnClickListener(this);
        replay.setOnClickListener(this);
        initVideoPath();
    }

    private void initVideoPath() {
        File file = new File(Environment.getExternalStorageDirectory(), "movie.3gp");
        videoView.setVideoPath(file.getPath());
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.play:
            if (!videoView.isPlaying()) {
                videoView.start();
            }
            break;
        case R.id.pause:
            if (videoView.isPlaying()) {
                videoView.pause();
            }
            break;
        case R.id.replay:
            if (videoView.isPlaying()) {
                videoView.resume();
            }
            break;
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (videoView != null) {
            videoView.suspend();
        }
    }

}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <VideoView
        android:id="@+id/video_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <Button
            android:id="@+id/play"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Play" />

        <Button
            android:id="@+id/pause"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Pause" />

        <Button
            android:id="@+id/replay"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Replay" />
    </LinearLayout>

</LinearLayout>
时间: 2024-10-12 04:07:33

每天进步一点----- VideoView的相关文章

Android视频播放之VideoView

1.VideoView类介绍 Android的VideoView组件可以从不同的来源(例如资源文件或内容提供器)读取图像,计算和维护视频的画面尺寸以使其适用于任何布局管理器,并提供一些诸如缩放.着色之类的显示选项,包含在widget下面:android.widget.VideoView.Android中视屏播放框架如下图: 从图中可以看出,VideoView组件进行视频播放的过程可以分为三步: (1)JAVA Framework层,应用程序进来之后到VideoView,再经过Surface: (

利用videoView创建播放器,实现展示视频列表和搜索sd卡功能 以及android6.0的动态授权等功能

最近无聊写了个播放器除了没实现解码功能大多的功能都实现了,主要是回顾一些android的知识点和andorid6.0的动态授权的学习. 1.android 6.0的动态授权问题. android 6.0后需要开发人员实现动态授权,不再像以前一样在mainfet的清单文件中加入权限就可以了,需要在代码中动态分配权限.如微信发送图片时候就需要访问图库,用户可以在setting里设置不能访问也可以设置为可以访问图库,以前的android系统在安装时候同意了后就一直可以访问图库否则就不能安装微信,现在的

关于从Activity A跳转到Activity B ,其中Activity A中有一个VideoView,Activity B中有一个MediaPlayer。

两个不同的视频的跳转, 前面我是在onStop()方法中销毁VideoView(因为MediaPlayer是全局共用的,而VideoView内包含MediaPlayer),但是每次进入Activity B视频播放了一点 就会弹出了,导致视频B播放失败 public class MovieSynopsis extends BaseActivity implements OnClickListener{ @Override protected void onCreate(Bundle savedIn

[Android基础] VideoView

最早发布在 简书 ,是做项目过程中的笔记记录 资源 Android三种播放视频的方式 Android播放器框架分析之AwesomePlayer 视频网站真实地址解析 ( 这个是想测试在线视频时,发现视频src都不是真实的,顺便看看怎么解析,以后下载一些视频网站视频就简单了) 视频真实地址解析分析 优酷真是flv地址分析 视频播放原理: 系统会首先确定视频的格式,然后得到视频的编码..然后对编码进行解码,得到一帧一帧的图像,最后在画布上进行迅速更新,显然需要在独立的线程中完成,这时就需要使用sur

Android Studio上手,基于VideoView的本地文件及流媒体播放器

既然是第一个Android程序,少不了要Hello World. 1. 新建安卓工程 2. 输入工程名称 3. 选择平台版本 4. 选择一个空的Activity 5. 定制自己的Activity 点击Finish后,便生成了可以直接运行的Hello World程序.下面开始讨论怎样使这个只能打印Hello World的程序能够播放本地和网络视频. 此处附上功能目录结构: 6. 布局文件 首先需要重新布局.设计器的设计结果是保存在"activity_video_view_demo.xml"

全新一点公益全返公益APP开发

全新一点公益科技开发,公益APP开发 公益软件开发 (一点公益江先生:185,2911,8412 一点公益全返, 一点公益平台开发. 一.一点公益系统是怎么玩的呢?   首先消费者注册成为一点公益的消费会员(公益信使),信使在任何一家已经入驻的商家那里进行消费,均可以参与"一点公益"消费fan利模式.   1.注册一点公益信使没有任何加盟条件和任何费用   2.注册一点公益信使之后便可以推荐别人注册成为一点公益信使   3.通过你注册的信使在公益联盟商家消费,你可以获得推荐人的激励收益

关于重构工作的一点思考

最近两周一直忙着和重构相关的事情,本文将简要概述从开始制定重构方案,到具体执行的过程中遇到的问题,以及对重构的一点理性思考. 起因: 本系统是2015年11月开始建设,当时为了快速投入使用,大量的烂代码,后期一直保持快速前进,没有进行过实质性的重构. 具体表现: ● 分层不清,sql哪都有,dao有.service也有,就差controller没写了.同样dao也包含业务逻辑. ● sql用的是spring jdbc,并没有使用mybatis,导致sql写起来有些复杂,封装不够基本都是原始sql

做预解释题的一点小方法和小技巧

在JavaScript中的函数理解中预解释是一个比较难懂的话题.原理虽然简单,寥寥数言,但其内涵却有深意,精髓难懂.如何在轻松活跃的头脑中将它学会,现在针对我在学习中的一点小窍门给大家分享一下,希望能给大家一些帮助: 万事需遵循"原理"--"预解释"无节操和"this"指向:(可先看例题解析然后结合原理进行学习) (感谢蕾蕾老师给归纳的预解释无节操原理:) 如果函数传参数则先于以下执行,就相当于在函数私有作用域下var了一个变量:根据作用域原理,

关于继承和组合的一点总结

入行时一直用c++写端游的逻辑,对这两者的区别几乎是0. 最先意识到有不同是在看了设计模式之后,但也没啥自己想法,代码照旧,只是依稀有个印象:都说组合好,少用继承. 用c++的那段时间对这句经验是没多少感受的.后来用erlang.lua.go开始自己设计搭建基础框架,这才在编码层级感受到两者的巨大不同. 一个印象非常深的例子:上个手游项目MOBA大改造,首先要做个类似dota的开房间系统,5v5. 想想房间也就是个小号地图嘛,便着手把嵌在活动中的地图代码扣了出来.做成单独的功能类,LogicMa