FFmpeg播放一个视频

2018-10-10  本文已影响0人  追寻米K

android 中播放一个视频通常的方式:

                        1、mediaPlayer+SurfaceView

                         2、videoView

这两个应该说就是一种方式,videoView也是继承自SurfaceView,这种方式只能播放3gp,mp4,avi等很有限的几个格式,片子那么多,肯定满足不了老司机。

使用ffmpeg播放一个视频,这里知识简单播放一下,其他功能后面在做。

VideoView源码中在openVideo()方法调用下面方法达到

真正的绘制视频画面只是用到了Surface,我们也模仿着使用surface进行原生绘制视频画面。

播放视频和播放音频都要放在子线程中

前面的套路都是一样的,打开文件,解封装,解码。。。

这里仅仅只是播放一个视频哦。

现在来来播放一个音频:

声音在物理上是一连串的波,那这个波怎么变成代码呢?这个代码又怎么能播放出声音呢?

假如黑色的波就是声音的波型,只要在波峰和波谷采集这两个点的值,就能大致描绘出这个波,利用这个特点,每秒采集上万次,就能对声音的录制,科学家发现每秒采集44100次人听着最清晰最好,这就是采样率。

android SDK中播放音频:

    AudioManager:主要用来管理Audio系统

    AudioTrack:主要用来播放声音

    AudioRecord:主要用来录音

还可以使用openSL ES来实现音频的播放,android的底层也是使用的这个,在NDK的platforms\android-27\arch-arm\usr\lib就有个libOpenSLES.so

现在先用回调jni回调java方法的方式来实现一个播放MP3。

一样的套路解封装 解码

跟视频大致差不多,解码那块不一样而已,ffmpeg的套路。

在playSound方法中传入MP3的路径就能播放啦。

上一篇 下一篇

猜你喜欢

热点阅读