我们长路漫漫,只因学无止境。网站首页学无止境
10. SLAudioPlay音频播放完成并测试对MP4文件音视频播放~1
发布时间:2021-06-12 11:50:46作者:雪饮[心得笔记]

首先在cpp/ IAudioPlay.cpp中實現GetData方法用來讀幀數據。同時實現update用來更新緩衝隊列:#include "IAudioPlay.h"
#include "XLog.h"
XData IAudioPlay::GetData()
{
9. IAudioPlay的Update将音频压入缓冲队列并测试~1
发布时间:2021-06-12 10:33:48作者:雪饮[心得笔记]

為實現緩衝我們需要有緩衝隊列和互斥量,於是乎在cpp/IAudioPlay.h:#ifndef XPLAY_IAUDIOPLAY_H
#define XPLAY_IAUDIOPLAY_H
#include <list>
#include "IObserver.h"
#in
8. 完成了IAudioPlay和SLAudioPlay的音频播放环境初始化~1
发布时间:2021-06-11 21:37:06作者:雪饮[心得笔记]

利用IAudioPlay和SLAudioPlay完成的音频播放环境初始化需要先在cpp/CMakeLists.txt中引入這兩個家夥:# For more information about using CMake with Android Studio, read
详细信息>>7. 完成音频重采样IResample模块的处理功能~1
发布时间:2021-06-11 17:48:59作者:雪饮[心得笔记]

完成Iresample模块,首先在入口cpp/native-lib.cpp中打开Iresample(初始化):#include <jni.h>
#include <string>
#include <android/native_window_jni.h>
#include "FFDemux.
6. 完成音频重采样IResample模块初始化代码~1
发布时间:2021-06-11 17:00:27作者:雪饮[心得笔记]

音频重采样,首先需要在继承Iobserver然后主要以实现Resample为主:cpp/IResample.h:#ifndef XPLAY_IRESAMPLE_H
#define XPLAY_IRESAMPLE_H
#include "XParameter.h"
#includ
5. GLVideoView完成使用shader显示视频~1
发布时间:2021-06-11 16:17:08作者:雪饮[心得笔记]

前面实现了样本大小获取,那么样本宽高这些也应该一并获取出来:xplay/app/src/main/cpp/FFDecode.cpp:extern "C"
{
#include <libavcodec/avcodec.h>
}
#include "FFDeco
4. XTexture初始化并完成GLVideoView的调用~1
发布时间:2021-06-10 21:25:05作者:雪饮[心得笔记]

對於質地,我們需要有創建和初始化,於是乎在cpp/XTexture.h中聲明這兩個:#ifndef XPLAY_XTEXTURE_H
#define XPLAY_XTEXTURE_H
class XTexture
{
public:
static XTextur
3. XShader基于yuv420p的初始化Init代码完成并测试~1
发布时间:2021-06-10 18:25:11作者:雪饮[心得笔记]

首先是在cpp/native-lib.cpp中调用片元让片元初始化:#include <jni.h>
#include <string>
#include <android/native_window_jni.h>
#include "FFDemux.h"
#include "XLog.h
2. IEGL类初始化封装java部分添加XPlay窗口类~1
发布时间:2021-06-10 17:44:37作者:雪饮[心得笔记]

首先需要初始化窗口cpp/native-lib.cpp:#include <jni.h>
#include <string>
#include <android/native_window_jni.h>
#include "FFDemux.h"
#include "XLog.h"
#include
1. IVideoView显示模块架构讲解和代码创建~1
发布时间:2021-06-10 16:57:26作者:雪饮[心得笔记]

c++后台若使用ANativeWindow_fromSurface将surface转化为ANativeWindow;需要头文件:#include <android/native_window_jni.h>:cpp/native-lib.cpp:#include <jni.h>
#include