vitamio简述

vitamio

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

新特性

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

VideoView

ViewView继承自SurfaceView,内部有引用这mediaPlayer(Vitamio本身的),以及播放相关的mediaController。
1. 调用简单:
//对于流媒体,可以通过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);
        }
    });
  1. 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
    

猜你喜欢

转载自blog.csdn.net/dirksmaller/article/details/77839673