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的路径就能播放啦。
网友评论