Android _ 音视频方向进阶路线及资源合集(3)

文章详细介绍了Android音视频开发的基础(如MediaRecorder/MediaPlayer)、进阶版本(涉及Camera、MediaCodec等高级API),以及高级阶段的编码库和媒体传输协议(如rtmp、webrtc)。还推荐了系统学习资源和相关技术文章链接。

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

MediaRecorder示例:

MediaPlayer mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(mContext, mUri, mHeaders);
mMediaPlayer.setDisplay(mSurfaceHolder);
mMediaPlayer.prepareAsync();

示例代码简单介绍了一下MediaRecorder和MediaRecorder的API,参考上面提供的demo已经可以实现简单的播放器和音视频录制功能了.上面我们又引出两个接口来:Camera, Surface. 拍照等功能我们都可以使用Camera的接口实现,关于Camera的API可以参考google的demo:github.com/googlearchi… Surface我们接下来介绍.

1.3 进阶版本

上面的的MediaRecorder,MediaPlayer直接封装了图中的蓝色部分与绿色部分.它们将输入编码复用以及解码解复用输出封装到了一起,可定制性差: 1.MediaPlayer只支持固定的编码和封装,不支持rtmp等 2.MediaRecorder无法支持mp3,opus, ogg等编码,无法对采集到音视频做预处理(比如变声,美颜等)

基于上述几个原因,我们再认识几个API:

  1. 视频采集 Camera
  2. 音频采集 AudioRecorder
  3. 视频预处理:SurfaceTexture, Surface, EGL ,GLES10
  4. 音视频编码 MediaCodec MediaFormat
  5. 音视频封装(复用) MediaMuxer
  6. 音视频(解复用) MediaExtractor
  7. 音视频解码 MediaCodec
  8. 视频预览 SurfaceView, GLSurfaceView, TextureView
  9. 音频播放 AudioTrack

上述API Android也为我们提供了示例https://github.com/google/grafika,里面包含的示例相当全面:

  1. Play video (TextureView). 基于MediaCodec ,MediaExtractor, TextureView封装的播放器,可以帮助理解这几个api.
  2. Continuous capture. 基于Camera,GLES20,SurfaceTexture,SurfaceView,MediaCodec实现的建议的视频录制器.
  3. Double decode. 类似于Play video示例,只是解码两路视频渲染到TextureView.
  4. Hardware scaler exerciser. 演示OpenGL进行画面缩放
  5. Live camera (TextureView). 演示Camera,SurfaceTexture以及TextureView使用
  6. Multi-surface test. 演示三路视频渲染
  7. Play video (SurfaceView). 类似于Play video (TextureView),只是输出从TextureView变成了SurfaceView.
  8. Record GL app. 基于FBO同时将摄像头采集数据输出到编码器和屏幕,FBO是实时美颜的关键技术.
  9. Record Screen using MediaProjectionManager.基于MediaProjectionManager将屏幕内容录制成文件.之前我们的输入都是摄像头,Android5.0开始提供了MediaProjectionManager,可以对屏幕内容进行采集.
  10. Scheduled swap. 了解一个新伙伴Choreographer
  11. Show + capture camera. 摄像头同时输出到文件和屏幕(与"RecordFBOActivity"输出对象变成了GLSurfaceView)
  12. Simple Canvas in TextureView. 一般的我们把基于OpenGL的渲染称为"硬"渲染,基于Canvas的称为"软&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值