应用播放的时候需要截图,可以在上层使用TexturView来使用截图,不过太具有局限性呢,还是在底层处理比较好。
那么先分析下可以在哪里加截图呢?看到网上很多做的都不能支持硬解截图,这样肯定是不行的。
所以我们可以选择在video_image_display2中来做截屏处理。
添加shot_screen.h
#ifndef _SHOT_SCREEN_H
#define _SHOT_SCREEN_H
#include <jni.h>
#include "ff_ffplay_def.h"
#include "ijkplayer.h"
int do_shot(VideoState *videoState, uint8_t *frameFuf, int destWidth, int destHeight,
SDL_VoutOverlay *bmp);
jobject start_shot(JNIEnv *env, IjkMediaPlayer *mp, int width, int height, jobject config);
#endif
添加shot_screen.c文件
#include <jni.h>
#include <android/bitmap.h>
#include "ff_ffplay_def.h"
#include "ijkplayer.h"
#include "ijkplayer_internal.h"
#include "shot_screen.h"
void fill_bitmap(int lineSize, uint8_t *data, uint8_t *frameFuf, int width, int height) {
int size = width * 4;
for (in