android.mk+跨平台,cocos2dx跨平台直播实例-ffmpeg-android篇

本文介绍了如何在Windows环境下,使用Linux或Mac虚拟机编译适用于Android的FFmpeg库,并将其集成到Cocos2d-x项目中。首先,详细列出了所需的软件环境和版本,包括Linux、Windows、Android开发工具等。然后,指导读者通过编译FFmpeg并将其库文件放入项目jni目录下,修改Android.mk和Application.mk文件来配置项目。最后,进行了项目清理和编译,确保FFmpeg在Cocos2d-x Android项目中正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、环境linux

windows10(mac的虚拟机)android

cocos2dx-3.13.1ios

android(adt-bundle-window-86_64-20140702)git

ffmpeg-3.0github

ndk(android-ndk-r10c)windows

好了,其余的好比jdk什么的就不说了。eclipse

2、项目配置ide

你们想要在android上运行cocos2dx的项目要先配置好cococs2dx的android环境。这个有传送门。spa

哦,还有,个人环境是在eclipse上配置的(很差意思),没用过AndroidStudio,很差意思,不过你们能够看eclipse,懂得eclipse和AndroidStudio的就能够根据eclipse配置本身的AndroidStudio了。.net

下面的配置说明是根据你们配置好了cocos2dx运行的环境以后说的,cocos2dx的配置我就再也不啰嗦了。

如今咱们的cocos2dx是用的个人上一篇cocos2dx跨平台直播实例-ffmpeg-ios篇写过的项目。

好了,把项目Import进eclipse里,如今你们配置好了cocos2dx的环境,运行一下,确定是报错的,由于咱们以前写的LiveVideo须要ffmpeg库,而咱们上一篇中配置的ffmpeg库的环境只是ios或者mac项目的,android里面并无这样的环境!!

因此,接下来咱们要配置ffmpeg在cococs2dx-android的项目上的环境。

1.ffmpeg在android用的库的编译

传送门。这篇文章里的编译环境是在mac下的,linux下也能够,因此windows的同窗还得建个linux或者mac的虚拟机才行。。。。

2.ffmpeg库在andorid上的配置

ffmpeg编译好以后,把include和lib文件夹复制到android项目的jni下面。

如图:

5e62077f7f2de16636c6d205d02b3b05.png

以后,

修改Android.mk文件

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE:= libavcodec

LOCAL_SRC_FILES:= lib/libavcodec-57.so

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE:= libavformat

LOCAL_SRC_FILES:= lib/libavformat-57.so

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE:= libswscale

LOCAL_SRC_FILES:= lib/libswscale-4.so

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE:= libavutil

LOCAL_SRC_FILES:= lib/libavutil-55.so

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE:= libavfilter

LOCAL_SRC_FILES:= lib/libavfilter-6.so

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE:= libswresample

LOCAL_SRC_FILES:= lib/libswresample-2.so

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d)

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/external)

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos)

$(call import-add-path,$(LOCAL_PATH)/../../cocos2d/cocos/audio/include)

LOCAL_MODULE := MyGame_shared

LOCAL_MODULE_FILENAME := libMyGame

LOCAL_SRC_FILES := hellocpp/main.cpp \

../../Classes/LiveVideo.cpp \

../../Classes/AppDelegate.cpp \

../../Classes/HelloWorldScene.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_C_INCLUDES += $(LOCAL_PATH)/include

LOCAL_SHARED_LIBRARIES:=libavcodec libavfilter libavformat libavutil libswscale libswresample

# _COCOS_HEADER_ANDROID_BEGIN

# _COCOS_HEADER_ANDROID_END

LOCAL_STATIC_LIBRARIES := cocos2dx_static

# _COCOS_LIB_ANDROID_BEGIN

# _COCOS_LIB_ANDROID_END

include $(BUILD_SHARED_LIBRARY)

$(call import-module,.)

# _COCOS_LIB_IMPORT_ANDROID_BEGIN

# _COCOS_LIB_IMPORT_ANDROID_END

用上面的内容替换掉Android.mk里的内容。

而后,Application.mk文件:

加上这句

243c75e32ca203bcffb98e1a57464039.png

编译Project-Clean。

355407748c0092da231428f5370f2942.png

完成,等待编译结束。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值