当前位置: 首页 > news >正文

模板网站建设公司曹操博客seo

模板网站建设公司,曹操博客seo,做电玩城设计的网站,长沙建站公司哪有更多内容:XiaoJ的知识星球 SDL2:Android-arm64端编译使用 2. SDL2:Android-arm64端编译使用2.1 安装和配置NDK2.2 下载编译SDL22.3 SDL2使用示例:Audio2.4 Android设备运行 2. SDL2:Android-arm64端编译使用 在Linux系…

更多内容:XiaoJ的知识星球


SDL2:Android-arm64端编译使用

    • 2. SDL2:Android-arm64端编译使用
      • 2.1 安装和配置NDK
      • 2.2 下载编译SDL2
      • 2.3 SDL2使用示例:Audio
      • 2.4 Android设备运行


2. SDL2:Android-arm64端编译使用

在Linux系统上使用Android NDK编译和使用arm64下的SDL2,可以按照以下步骤进行:

2.1 安装和配置NDK

确保已经安装Android NDK r26c。

设置${NDK}环境变量。

2.2 下载编译SDL2

wget https://www.libsdl.org/release/SDL2-2.28.4.tar.gz
tar -zxvf SDL2-2.28.4.tar.gzcd SDL2-2.28.4
mkdir build_arm64
cd build_arm64cmake -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \-DANDROID_ABI=arm64-v8a \-DANDROID_PLATFORM=android-26 \-DCMAKE_INSTALL_PREFIX=$PWD/_install \-DSDL_STATIC=OFF \-DSDL_SHARED=ON \..make
make install

确定安装目录:

sudo find ./ -type f -name "SDL2Config.cmake"
sudo find ./ -type f -name "sdl2-config.cmake"

2.3 SDL2使用示例:Audio

(1)main.cpp示例:

  • 使用SDL2从音频设备获取输入数据,并使用printf打印相关信息。
#include <SDL2/SDL.h>
#include <stdio.h>// 音频回调函数
void audioCallback(void* userdata, Uint8* stream, int len) {// 这里可以处理音频数据,例如保存到文件或进行实时处理// 本示例中不进行处理,仅打印信息printf("Captured %d bytes of audio data.\n", len);
}int main(int argc, char* argv[]) {// 初始化SDL音频子系统if (SDL_Init(SDL_INIT_AUDIO) < 0) {printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());return -1;}// 定义音频规格SDL_AudioSpec want, have;SDL_zero(want);want.freq = 44100;  // 采样率want.format = AUDIO_S16SYS;  // 采样格式want.channels = 2;  // 双声道want.samples = 1024;  // 缓冲区大小want.callback = audioCallback;  // 指定音频回调函数want.userdata = nullptr;// 打开音频设备SDL_AudioDeviceID deviceId = SDL_OpenAudioDevice(nullptr, 1, &want, &have, 0);if (deviceId == 0) {printf("SDL could not open audio device! SDL_Error: %s\n", SDL_GetError());SDL_Quit();return -1;}// 检查音频规格是否符合预期if (have.freq != want.freq || have.format != want.format || have.channels != want.channels) {printf("Audio specification mismatch.\n");SDL_CloseAudioDevice(deviceId);SDL_Quit();return -1;}// 播放音频SDL_PauseAudioDevice(deviceId, 0);// 持续捕获音频数据printf("Capturing audio... Press Enter to stop.\n");getchar();// 停止音频捕获SDL_PauseAudioDevice(deviceId, 1);// 关闭音频设备SDL_CloseAudioDevice(deviceId);// 退出SDLSDL_Quit();return 0;
}

(2)编译

使用Makefile+NDK交叉编译:

NDK_PATH := /home/android-ndk-r26c
CXX := $(NDK_PATH)/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++# SDL2库路径
SDL2_DIR := /home/SDL2-2.28.4/build_arm64/_install/
SDL2_INCLUDE := \-I${SDL2_DIR}/include \-I${SDL2_DIR}/include/SDL2
SDL2_LIB := ${SDL2_DIR}/lib/# 编译选项
CFLAGS = -g -O3 -fPIC -std=gnu++20 --target=aarch64-none-linux-android28
LFLAGS = -g -O3 -fPIC -std=gnu++20 --target=aarch64-none-linux-android28 -Wl,--gc-sections -L$(SDL2_LIB) -lSDL2 -llog -landroid -lGLESv1_CM -lEGL -lOpenSLES -lGLESv2 -lstdc++ -lm -ldl -lc -static-libstdc++# 目标可执行文件
TARGET := audio_capture
$(TARGET):$(CXX) $(CFLAGS) $(SDL2_INCLUDE) -o main.cpp.o -c main.cpp$(CXX) $(CFLAGS) -o $(TARGET) main.cpp.o $(LFLAGS)
clean:rm -f *.o $(TARGET)
.PHONY: all clean

生成audio_capture可执行文件,执行编译:make

2.4 Android设备运行

# 将可执行文件传输到Android设备:
adb push audio_capture /data/local/tmp/# 在Android设备上运行
cd /data/local/tmp/
chmod 755 audio_capture
./audio_capture

.


声明:资源可能存在第三方来源,若有侵权请联系删除!

http://www.ds6.com.cn/news/71411.html

相关文章:

  • 网站建设维护外包最近七天的新闻重点
  • 导航网站怎么做点击十大基本营销方式
  • 深圳横岗做网站的江阴企业网站制作
  • 比较好的做网站的公司seo是什么部门
  • 张店网站制作价格低百度指数免费查询
  • asp网站开发教程入门google海外版
  • 网站建设第三方宁波seo在线优化
  • 北京网站建设价格百度一下官方网
  • wordpress d8主题 4.1东莞seo托管
  • 网站建设ab0769seo培训教程视频
  • 天津建站方案常熟网络推广
  • 企业宣传片制作多少钱吴中seo页面优化推广
  • 笑话网站代码网站建设推广多少钱
  • c2c电商平台网站全网搜索
  • 网站设计中的div是什么女教师遭网课入侵直播录屏曝光i
  • 常见的网店平台有哪些福州seo快速排名软件
  • 哪些网站做推广朝阳区seo
  • vi视觉设计手册东莞百度seo推广公司
  • b2c电子商务网站的特点武汉今日头条最新消息
  • 上海住房和城乡建设局网站平台优化是指什么
  • 重庆网站建设太原网站快速排名优化
  • word文档怎么做网站跳转链接友情链接价格
  • sql网站开发广东网站seo
  • 贵州毕节建设局网站官网网站维护一年一般多少钱?
  • 文本编辑器 网站汕头seo网站建设
  • 域名解析ip138宁波网站排名优化seo
  • 肇东网站制作seo外链发布
  • 如何做网站的教程英语培训机构前十名
  • 随州网站制作价格神马移动排名优化
  • 东台做网站的什么平台引流最快