小编sza*_*kal的帖子

在android中运行ffmpeg作为库

我有一个简单的任务要做.我需要使用在android环境中工作的ffmpeg将一组图片合并到一个视频中.

经过一个多星期的战斗,不同的教程和示例解释了如何运行编译ffmpeg,我说,中间成功.我终于为android编译了ffmpeg.

我按照这个例子:https: //github.com/appunite/AndroidFFmpeg 最适合我.

由于构建ffmpeg,因此具有以下目录结构:

[Project]/jni/ffmpeg-build/armeabi-v7a/libffmpeg.so
[Project]/jni/ffmpeg-build/armeabi/libffmpeg.so
[Project]/jni/ffmpeg-build/mips/libffmpeg.so
[Project]/jni/ffmpeg-build/x86/libffmpeg.so
Run Code Online (Sandbox Code Playgroud)

我也遵循了ndk示例,所以我从java运行c代码:

#include <string.h>
#include <jni.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>    
#include <android/log.h>    
#include <stdlib.h>
#include <stdbool.h>

bool initted = false;    
static JavaVM *sVm;

jstring Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv* env, jobject thiz) {

    char **argv;
    char *cmd;
    int argc;

//  cmd = "ffmpeg -version";
//  argv = parsedargs(cmd, &argc);
//  ffmpeg(argc, argv);

    return (*env)->NewStringUTF(env, "Hello from JNI !");

}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从我的"hello-jni"c文件中运行ffmpeg中的函数.我已经读过了我需要在ffmpeg上写一个包装器,我的hello-jni就是这个包装器.

这是我的Android.mk,它可能是实现我的目标的重要部分,但老实说,我不明白这个文件中设置的一些行.或者只是我不知道如何让事情发挥作用.

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg-prebuilt
LOCAL_SRC_FILES …
Run Code Online (Sandbox Code Playgroud)

c android ffmpeg dynamic-linking android-ndk

7
推荐指数
1
解决办法
1万
查看次数

在 SpringBootTest 在 spring-boot 3 中加载上下文之前运行代码

让我们考虑以下测试:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class ExampleTest {

    static {
        System.out.println("hello from static");
    }

    @BeforeAll
    static void beforeAll() {
        System.out.println("before all!");
    }

    @Test
    void contextLoads() {
        System.out.println("hello!");
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望类加载器首先加载类并调用静态函数。然后该对象被实例化并加载 spring-boot 上下文。

已声明,我在日志中看到:

...

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot spring-boot-test

5
推荐指数
0
解决办法
575
查看次数