树莓派 配置SDL2开发环境(音频)

本文介绍了在树莓派上配置SDL2开发环境的三种方法:使用包管理器安装、源码编译以及官方提供的预编译包。源码编译虽然可以裁剪依赖,但可能出现设备打开问题;官方包体积小且运行正常,适合交叉编译。最后,文章还提及了两种音频测试的源代码实现。

树莓派上使用SDL2开发库、运行库,有以下三种方法:

  • 第一种,使用包管理器或apt安装。
  • 第二种,自己编译,通过configure配置需要的模块。
  • 第三种,下载官方提供的开发包。

直接使用apt安装发现依赖库非常多(特别是视频有关),体积也是达到了500M。自己配置编译可裁剪,但可能优化配置存在问题。因此选择其他方式。

1、源码编译

进入SDL官网下载源码,解压

cd SDL
mkdir build
cd build
../configure
make
sudo make install

直接编译、安装都成功。

安装好库之后,可以使用sdl2-config工具快速配置编译源代码生成程序,

gcc -o myprogram myprogram.c `sdl2-config --cflags --libs`

g++ -o myprogram myprogram.cpp `sdl2-config --cflags --libs`

运行发现打不开设备。。。

原因未查。。。

待续。。。


2、官方提供包

直接下载SDL为raspberry提供的预编译开发包,可能某些功能缺少相应的系统依赖。

下载链接 LIBSDL_Raspberry_Pi
在这里插入图片描述

下载最新版本解压即可,解压后30M左右。

源代码编译、运行一切正常。

也方便交叉编译。

3、音频测试源代码

第一种,使用回调方式

#include <iostream>

#define SDL_MAIN_HANDLED
#include "SDL.h"


#define MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio    //48000 * (32/8)

unsigned int audioLen = 0;
unsigned char *audioChunk = NULL;
unsigned char *audioPos = NULL;

void fill_audio(void * udata, Uint8 * stream, int len)
{
   
   
    SDL_memset(stream, 0, len);

    if(audioLen == 0)
        return;

    len = (len>audioLen ? audioLen : len);

    SDL_MixAudio(stream, audioPos, len, SDL_MIX_MAXVOLUME);

    audioPos += len;
    audioLen -= len;
}

int main
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aworkholic

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值