MediaPlayer播放音乐和视频

本文详细介绍了如何在Android应用中使用SurfaceView和MediaPlayer类来实现视频播放功能,包括SurfaceView的基本配置、MediaPlayer的初始化与配置、媒体源设置、播放控制等关键步骤。

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

视频:

SurfaceView surfaceView;    //SurfaceView控件,用于显示视频画面

SurfaceHolder surfaceHolder;    //SurfaceView的对象surfaceView的getHolder()方法获得SurfaceHolder的对象surfaceHolder

//我们对这个surfaceHolder对象进行设置

surfaceHolder.setFixedSize(320, 220); //显示的分辨率,不设置为视频默认

surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);     //设置surfaceview不维护自己的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前

surfaceHolder.addCallback(new SurceCallBack());     //对surface对象的状态进行监听

//这个SurceCallBack()的形参是一个类,这个类实现了SurfaceHolder.Callback接口,即要实现它的surfaceChanged、surfaceCreated、surfaceDestroyed方法

//关于这个SurfaceView 控件的对象surfaceView设置完毕后,接下来就是设置media源了,我们先声明一个MediaPlayer 对象mediaPlayer

MediaPlayer mediaPlayer;    //MediaPlayer类的对象

//下面设置流类型、加载surfaceHolder、设置播放源

File file=new File(Environment.getExternalStorageDirectory(),filename);     //filename如"vedio.mp4"

//File file = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + filePath);    //  filePath如"/vedio.mp4"

mediaPlayer.reset();//重置为初始状态
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);                  //设置音乐流的类型
mediaPlayer.setDisplay(surfaceHolder);                         //设置video影片以surfaceviewholder播放
mediaPlayer.setDataSource(file.getAbsolutePath());                   //设置路径
mediaPlayer.prepare();       //缓冲
mediaPlayer.start();             //播放

//MediaPlayer对象的其他方法

mediaPlayer.pause();     //暂停

mediaPlayer.stop();        //停止

mediaPlayer.release();     //释放资源

mediaPlayer..seekTo(prosition);          //跳到指定位置

mediaPlayer..getCurrentPosition();      //获取播放的位置

//MediaPlayer静态方法

MediaPlayer.create(Context context, Uri uri);

音频:

音频很简单

也是用到MediaPlayer这个类实例一个对象

可以用new MediaPlayer()生成对象再setDataSource方法设置播放源

也可以直接用静态方法MediaPlayer.create(Context context, Uri uri)生成MediaPlayer对象,在形参中指明调用的Context和播放源Uri

这里的Uri可以Uri静态方法parse一个File对象的getAbsolutePath()方法素获得的路径字符串获得(或者直接parse一个代表绝对路径地址的字符串),也可以是APP下注册的资源,即R文件下注册的资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值