欢迎使用6miu-markdown编辑器

xiaoxiao2021-02-28  126

vitamio

一款开源的多媒体框架,全硬件加速和渲染。

新特性

基于最新的ffmpeg2.0 版本支持ffmpegAV 选项,可以自定义协议头支持多种硬件平台,x86,mips eg

VideoView

ViewView继承自SurfaceView,内部有引用这mediaPlayer(Vitamio本身的),以及播放相关的mediaController。

调用简单:

//对于流媒体,可以通过uri进行播放 mVideoView.setVideoPath(path); mVideoView.setMediaController(new MediaController(this)); mVideoView.requestFocus(); mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { // optional need Vitamio 4.0 mediaPlayer.setPlaybackSpeed(1.0f); } });

VideoView高内聚

mediaPlayer对象的使用 mMediaPlayer = new MediaPlayer(mContext, mHardwareDecoder); mMediaPlayer.setOnPreparedListener(mPreparedListener); mMediaPlayer.setOnVideoSizeChangedListener(mSizeChangedListener); mMediaPlayer.setOnCompletionListener(mCompletionListener); mMediaPlayer.setOnErrorListener(mErrorListener); mMediaPlayer.setOnBufferingUpdateListener(mBufferingUpdateListener); mMediaPlayer.setOnInfoListener(mInfoListener); mMediaPlayer.setOnSeekCompleteListener(mSeekCompleteListener); mMediaPlayer.setOnTimedTextListener(mTimedTextListener); mMediaPlayer.setDataSource(mContext, mUri, mHeaders); //可以设置多种多样的数据源 mMediaPlayer.setDisplay(mSurfaceHolder); mMediaPlayer.setBufferSize(mBufSize); mMediaPlayer.setVideoChroma(mVideoChroma == MediaPlayer.VIDEOCHROMA_RGB565 ? MediaPlayer.VIDEOCHROMA_RGB565 : MediaPlayer.VIDEOCHROMA_RGBA); mMediaPlayer.setScreenOnWhilePlaying(true); //注意,此处的方法最终调用的是 hodler的方法 setKeepScreenOn(True) mMediaPlayer.prepareAsync(); //回调接口丰富 onPrepared onError onCompelete onBuffer onSeek onInfo onTimeText MediaController 一个控制播放的View,继承自FrameLayout。 基于MVC架构的设计理念 MediaController.MediaPlayerControl接口 mediaController将用户的行为转化为mediaPlayerControll响应的动作,进而去操作播放器mediaPlayer对象。
转载请注明原文地址: https://www.6miu.com/read-25602.html

最新回复(0)