MediaPlayer可以播放视频,只需需要SurfaceView的配合,SurfaceView主要用于显示MediaPlayer播放的视频流媒体的画面渲染。 SurfaceView是配合MediaPlayer使用的,MediaPlayer也提供了相应的方法设置SurfaceView显示图片,只需要为MediaPlayer指定SurfaceView显示图像即可。它的完整签名如下: voidsetDisplay(SurfaceHolder sh) 它需要传递一...
1.MediaPlayer除了可以播放音乐外,还可以播放视频,但是使用MediaPlayer播放音乐时,没有提供图像输出界面,可以使用SurfaceView组件来显示视频画面,首先,必须在布局文件activity_main.xml文件中定义SurfaceView组件,第二步就是创建MediaPlayer对象,加载要播放的视频,第三步就是将所要播放的视频画面输出到SurfaceView,使用MediaPla...
好几天没写博客了,处理了一点个人私事加上平时加班,基本上时间不充裕,上篇文章讲了一下用Mediaplayer来播放音乐,这次就讲讲使用Mediaplayer来和SurfaceView配合播放一个视频流媒体。MediaPlayer不仅可以播放视频,还可以与SurfaceView的配合,SurfaceView主要用于显示MediaPlayer播放的视频流媒体的画面渲染,两者可以一起协同播放...
Idle状态:当使用new()方法创建一个MediaPlayer对象或者调用了其reset()方法时,该MediaPlayer对象处于idle状态。这两种方法的一个重要差别就是:如果在这个状态下调用了getDuration()等方法(相当于调用时机不正确),通过reset()方法进入idle状态的话会触发OnErrorListener.onError(),并且MediaPlayer会进入Error状态;如果是新...
最近公司个广告机的项目要实现几段视频的无缝切换播放功能,我在网上找了一圈,发现网上说能实现实现视频无缝切换功能的都是用的surfaceview+mediaplayer,于是我开始漫漫的爬坑之路。 先简单介绍下surfaceview和mediaplayer,surfaceview有两级缓存机制,在播放着这帧视频的时候,会将下帧视频缓存到内存里,能够很好的保证视频播...
mediaPlayer.setDataSource(videoPath); // 设置播放视频的SurfaceView mediaPlayer.setDisplay(surfaceView.getHolder()); // 开始播放 mediaPlayer.start(); 3. 实现半屏与全屏切换: // 半屏 surfaceView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); ...
使用MediaPlayer配合SurfaceView播放视频的步骤与播放使用MediaPlayer播放MP3大体一致,只需要额外设置显示的SurfaceView即可。 SurfaceView双缓冲 上面有提到,SurfaceView和大部分视频应用一样,把视频流解析成一帧帧的图像进行显示,但是如果把这个解析的过程放到一个线程中完成,可能在上一帧图像已经显示过后,下一帧图像还没有来...
使用MediaPlayer和SurfaceView播放视频步骤:1.定义SurfaceView组件 <SurfaceViewandroid:id="@+id/surfaceView1"android:background="@drawable/bg"android:keepScreenOn="true"android:layout_width="576px"android:layout_height="432px"/> 2.创建MediaPlayer对象,并为其健在要播放的视频。与播放音频时创建 MediaPlayer...
1、调用player.setDataSource()方法设置要播放的资源,可以是文件、文件路径、或者URL。 2、调用MediaPlayer.setDisplay(holder)设置surfaceHolder,surfaceHolder可以通过surfaceview的getHolder()方法获得。 3、调用MediaPlayer.prepare()来准备。 4、调用MediaPlayer.start()来播放视频。
1、调用player.setDataSource()方法设置要播放的资源,可以是文件、文件路径、或者URL。 2、调用MediaPlayer.setDisplay(holder)设置surfaceHolder,surfaceHolder可以通过surfaceview的getHolder()方法获得。 3、调用MediaPlayer.prepare()来准备。 4、调用MediaPlayer.start()来播放视频。