Android 写一个属于自己的音视频播放器

这篇博客介绍了一个使用SurfaceView、JNI、OpenGL、OpenSL和ffmpeg开发的本地视频播放器。实现了视频音频同步、播放控制和拖动播放等功能。文章详细讨论了项目的结构、所需的前期知识以及在开发过程中遇到的音视频同步等难点问题。

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

基本概况

利用Android的SurfaceView + JNI + OpenGL + OpenSL +ffmpeg所做的一个本地视频播放器;

其实去年底在学习音视频知识的时候就做完了这个Demo,但一直想找时间改进并且拖着没有记录成博客,最近在复习音视频知识,希望能够把这个项目重新熟悉一下,顺便记录下来

完成功能:
  1. 解析本地视频音频和视频
  2. 音视频同步
  3. 暂停恢复播放
  4. 支持拖动播放
基本结构:

在这里插入图片描述

  1. MediaPlayerController 负责对外jni接口
  2. MediaSynchronizer 同步模块
  3. TextureQueue 内部有队列缓存视频帧,负责存入VideoFrame、转换为TextureFrame和对外提供TextureFrame
  4. AudioQueue 内部有队列缓存音频帧
  5. MediaDecoder 音视频解码器
  6. VideoOutput 视频输出
  7. AudioQueue 音频输出
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值