博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Android 多媒体应用】使用 MediaPlayer 播放视频
阅读量:5075 次
发布时间:2019-06-12

本文共 2717 字,大约阅读时间需要 9 分钟。

1.MainActivity.java

import android.media.AudioManager;import android.media.MediaPlayer;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.widget.Button;import java.io.IOException;public class MainActivity extends AppCompatActivity implements View.OnClickListener, SurfaceHolder.Callback {    private MediaPlayer mPlayer;    private SurfaceView sfv_show;    private SurfaceHolder surfaceHolder;    private Button btn_start;    private Button btn_pause;    private Button btn_stop;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initUI();    }    private void initUI() {        sfv_show = (SurfaceView) findViewById(R.id.sfv_show);        btn_start = (Button) findViewById(R.id.btn_start);        btn_pause = (Button) findViewById(R.id.btn_pause);        btn_stop = (Button) findViewById(R.id.btn_stop);        btn_start.setOnClickListener(this);        btn_pause.setOnClickListener(this);        btn_stop.setOnClickListener(this);        //初始化SurfaceHolder类,SurfaceView的控制器        surfaceHolder = sfv_show.getHolder();        surfaceHolder.addCallback(this);        //显示的分辨率,不设置为视频默认        surfaceHolder.setFixedSize(320, 240);    }    @Override    public void onClick(View v) {        switch (v.getId()) {            case R.id.btn_start:                if(!mPlayer.isPlaying()) {                    mPlayer.start();                }                break;            case R.id.btn_pause:                mPlayer.pause();                break;            case R.id.btn_stop:                mPlayer.stop();                break;        }    }    @Override    public void surfaceCreated(SurfaceHolder holder) {        mPlayer = new MediaPlayer();        mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);        //设置显示视频显示在SurfaceView上        mPlayer.setDisplay(surfaceHolder);        try {            mPlayer.setDataSource("/sdcard/TopGirl.mp4");            mPlayer.prepare();        }catch (IOException e){            e.printStackTrace();        }    }    @Override    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}    @Override    public void surfaceDestroyed(SurfaceHolder holder) {}    @Override    protected void onDestroy() {        super.onDestroy();        if (mPlayer.isPlaying()) {            mPlayer.stop();        }        mPlayer.release();    }}

2.activity_main.xml

3.AndroidMainfest.xml中添加权限

 

转载于:https://www.cnblogs.com/CoderTian/p/6204266.html

你可能感兴趣的文章
【viewResolver】 springmvc jsp
查看>>
6-28 random模块
查看>>
java.lang.reflect.InvocationTargetException
查看>>
hdu 5179 beautiful number(构造,,,,)
查看>>
dao层的泛型实现(2种方法)
查看>>
用Python和FFmpeg查找大码率的视频文件
查看>>
算法导论 文章12章 二叉搜索树
查看>>
Android学习笔记(四十):Preference的使用
查看>>
(转)linux sort,uniq,cut,wc命令详解
查看>>
关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)
查看>>
UVa540 Team Queue(队列queue)
查看>>
mysql数据增删改查
查看>>
shell中下载最新版本或指定版本的办法(Dockerfile 中通用)
查看>>
极客时间-左耳听风-程序员攻略-分布式架构工程设计
查看>>
洛谷P1290 欧几里得的游戏
查看>>
SSIS ->> Control Flow And Data Flow
查看>>
POJ1195
查看>>
Vue中table合并单元格用法
查看>>
Git 创建分支并合并主分支
查看>>
细说React(二)
查看>>