首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从 Linux 上运行的 Free Pascal 应用程序播放 wav 文件?

要从 Linux 上运行的 Free Pascal 应用程序播放 wav 文件,您可以使用 SDL 库。以下是一个简单的示例代码:

代码语言:pascal
复制
program PlayWav;

{$mode objfpc}{$H+}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SDL2, SDL2_mixer;

var
  audioSpec: TSDL_AudioSpec;
  audioBuf: PUInt8;
  audioLen: UInt32;

  // 加载 wav 文件并返回音频缓冲区
  function LoadWav(const filename: string; out audioBuf: PUInt8; out audioLen: UInt32): TSDL_AudioSpec;
  var
    wavSpec: TSDL_AudioSpec;
    wavBuf: PUInt8;
  begin
    if SDL_LoadWAV(PChar(filename), wavSpec, wavBuf, audioLen) = nil then
      raise Exception.Create('无法加载 wav 文件');

    audioBuf := wavBuf;
    Result := wavSpec;
  end;

begin
  if SDL_Init(SDL_INIT_AUDIO) <> 0 then
    raise Exception.Create('无法初始化 SDL');

  try
    audioSpec := LoadWav('example.wav', audioBuf, audioLen);

    if Mix_OpenAudio(audioSpec.freq, audioSpec.format, audioSpec.channels, audioSpec.samples) <> 0 then
      raise Exception.Create('无法打开音频设备');

    try
      if Mix_PlayChannel(0, PMix_Chunk(audioBuf), 0) = -1 then
        raise Exception.Create('无法播放 wav 文件');

      while Mix_Playing(0) = 1 do
        SDL_Delay(100);

    finally
      Mix_CloseAudio();
    end;

  finally
    SDL_Quit();
  end;
end.

这个示例代码使用 SDL 库加载 wav 文件,并使用 SDL_mixer 库播放音频。在运行此代码之前,请确保您已经安装了 SDL 和 SDL_mixer 库。

请注意,这个示例代码仅适用于 Linux 平台。如果您需要在其他平台上运行 Free Pascal 应用程序,您可能需要使用其他音频库。

相关搜索:如何从内存中包含.wav文件的How文件中播放HTML页面上的音频文件?如何从我的Windows机器上运行安装在linux机器上的OpenGL应用程序?如何从远程机器上的jar文件运行测试?如何在linux上运行打包的电子应用程序?如何在Apple Watch上从xcode运行我的应用程序?如何从运行在NodeJS上的ClojureScript中读取EDN文件?如何从OSX上的文件中调试应用程序的打开?无法在运行ios 13的设备上播放音频文件而不导致应用程序崩溃如何从iOS上的另一个应用程序打开谷歌播放音乐应用程序?如何从运行在.NET上的Linux应用程序对Windows域用户进行身份验证如何从.bat文件在heroku上的远程postgres数据库上运行代码如何从Linux shell运行一个简单的类文件?如何区分运行在Android和传统Linux上的ELF文件?如何使用HTTP请求方法将CSV文件从angular应用程序传递到服务器上运行的节点应用程序为什么我的linux ffmpeg输出文件需要通过ffmpeg重新运行它才能在windows上播放?可以从linux上运行的nodejs应用程序使用windows auth模式连接到mssql吗?如何从运行于Linux上的c# .net内核(docker容器)在远程windows网络路径上运行.exe如何从linux上的asp.net核心应用程序中迁移表WSL:如何从WSL上linux系统的命令行运行windows上的浏览器有没有办法从c#控制台应用程序运行linux文件服务器上的shell脚本?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

USF MSDS501 计算数据科学中

Linux 它会像: /home/YOURID/msan501/labs/sound 安装命令行工具 事实证明,我们将在 Python 中使用声音库,不知道如何处理 mp3 文件。...我们需要将ahhh.mp3文件转换为ahhh.wav,这些库知道如何处理它。 为此,我们将使用名为 mpg123 工具。...看一下当前目录中文件,看看是否出现了ahhh.wav: $ ls Kiss.aiff ahhh.mp3 ahhh.wav 如果您无法弄清楚如何转换为ahhh.wav,请不要担心。...现在是时候把所有这些放在一个简单 Python 程序中,你可以剪切和粘贴来播放声音。 让我们代码开始播放Kiss.aiff文件。 在音频文件同一目录中创建一个名为play.py文件。...再次执行程序,您应该听到播放其他声音文件。 最常见错误是声音文件没有与代码位于同一目录中。 生成我们自己声音 在声音章节中,我们看到了如何产生正弦波,当我们将它扔给扬声器时,正弦波会产生纯音。

1.3K20

用ARM实现音乐电子相册

2、交叉编译环境 2.1、交叉编译 交叉编译(cross-compilation)是指在某个主机平台上(比如PC)用交叉编译器编译出可在其他平台上(比如ARM运行代码过程。...直接文件读取到屏幕显示bmp文件。这种方法将通过显存显示bmp文件所需要内存空间、读取数据到申请空间、显示等多步任务简化成一步。事实也就是将读取文件数据到申请内存变到显示内存。...(4)对应用程序E_Album.c编译、加载: 在虚拟机上交叉编译: arm-linux-gcc -o E_Album E_Album.c //交叉编译应用程序 在开发板执行应用程序: ....."); //wav文件中读wav_length大小内容,然后写入/dev/dsp中 fseek(wav_fd, 0x2cL, SEEK_SET);...Linux和开发板上进行应用程序交叉编译,对硬件操作和对软件使用也有所掌握。

2K20
  • 【技术干货】原来ARM+Linux音频方案如此简单!

    嵌入式产品开发中经常遇到音频输入输出问题,如何为其添加“喇叭”、“麦克风”设备呢?本文将简单介绍ARM+Linux产品中音频解决方案。 ...ALSA是linux主流音频体系结构,它包含内核驱动集合, API 库和工具对 Linux 声音进行支持,应用程序只要调用alsa-lib提供API,即可以完成对底层音频硬件控制。  ...在开发板下,运行aplay程序可以对音频播放进行测试。在测试前,需要将耳机插入开发板耳机插孔中。...为测试基于I2S音频输出接口,在命令行下执行如下命令:  其中2.wav为需要播放音频文件,且此处假定2.wav位于/home/root/audios目录下。...由可知,音频编解码芯片在Linux系统中以控件形式存在,内部参数一般只记录在内存中,当系统掉电时,修改参数就会消失,所以需要保存和恢复指令将上次参数保存在配置文件中。

    2.2K20

    Java如何调用本地扬声器

    一个应用程序可使用权多个DLL文件,一个DLL文件也可能被不同应用程序使用,这样DLL文件被称为共享DLL文件)。...,这个方法既可以发声还能输出后缀为.wav文件,这是一个标准多媒体文件。...本来所有的基础都是在本地运行,通过调用本地dll文件实现扬声器发声,现在部署到centOS上将会失去这个dll支持,目前所存在问题是如何不使用dll文件实现这个功能,中间借助了.wav后缀音视频文件...如何Linux生成.wav文件如何获取这个文件并输出。...(解释一下,用餐顾客点击手机网页菜单,然后再餐厅主机来播放这个声音) 如何在输出主机不进行任何操作就能播放这个声音或者能够恢复之前工作状态。

    1K30

    基于PaddlePaddle实现DeepSpeech2端到端中文语音识模型

    noise.py 注意: 以上代码只支持在Linux下执行,如果是Windows的话,可以获取程序中DATA_URL单独下载,建议用迅雷等下载工具,这样下载速度快很多。...语音文件需要放在PaddlePaddle-DeepSpeech/dataset/audio/目录下,例如我们有个wav文件夹,里面都是语音文件,我们就把这个文件存放在PaddlePaddle-DeepSpeech.../models/infer/ 本地预测 我们可以使用这个脚本使用模型进行预测,如果如何还没导出模型,需要执行导出模型操作把模型参数导出为预测模型,通过传递音频文件路径进行识别,通过参数--wav_path...启动服务之后,如果在本地运行的话,在浏览器上访问http://localhost:5000,否则修改为对应 IP地址。...打开页面之后可以选择上传长音或者短语音音频文件,也可以在页面上直接录音,录音完成之后点击上传,播放功能只支持录音音频。

    2.6K10

    一个免费、跨平台、开源音频编辑器Audacity

    Audacity 是一个免费开源程序,用于编辑音频录制。它可在多个平台(windows/linux运行。Audacity 基于 GUI,是一个具有多种选项强大程序。它支持您录制各种类型声音。...下面是一些常用功能: MP3 录制 如果您想要完全控制音频文件,MP3 格式(Audacity 可以存储文件格式)为您提供了良好控制,您可以选择在哪种设备播放音乐,以及是否想在 iPod 播放...由于铃声有多种格式,因此请参考您手机手册,查看需要哪种格式。大多数手机使用 MP3 或 WAV 文件格式,Audacity 也支持这两种格式。...例如,如果您在制作了一段非常重要的话之后想添加 BANG.WAV。单击 FILE-IMPORT,然后找到 BANG.WAV 文件并导入它即可。BANG.WAV 将有自己音轨。可以滑动到想要位置。...您可以通过声卡将它们连接到计算机,然后单击 Audacity 界面的 RECORD,并开始播放您想要录制歌曲。此功能也适用于磁带录制。如果您不确定如何做,许多好网站都提供了相关帮助。

    1.6K50

    移植speexdsp到OpenHarmony标准系统⑤

    七、Speexdsp功能分析将speexdsp加入openharmony编译体系后,能成功编译出来动态链接库和测试用可执行文件,并不代表移植三方库成功。还要在开发板运行测试其功能是否正常。...进行功能测试需要对比pc端和开发板运行效果,因此需要在pc端编译出测试用可执行文件(开发板已经编译出来了)。...2.测试源文件testjitter.c,这个去抖动测试需要接收来自udp/rtp网络语音数据,原生测试程序没有做到真正意义测试,程序看是告诉用户如何使用接口。...如果有这样编译报错,说明依赖库没在linux安装完整。安转完整才能成功编译。...⑤执行testjitter可执行文件通过分析testjitter.c源码,测试需要接收来自udp/rtp网络语音数据,原生测试程序没有做到真正意义测试,程序看是告诉用户如何使用接口。

    11620

    SDL简介

    SDL提供了数种控制图像、声音、输出入函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)应用软件。...目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。...SDL在结构是将不同操作系统库再封装成相同函数,例如SDL在Windows平台上是DirectX封装,而在使用X11平台上(包括Linux),SDL则是与Xlib库沟通来输出图像。...Timers,用于定时器支持。 File Abstraction,文件系统相关操作。 Shared Object Support,用于动态库加载以及函数查找等相关操作。...SDL_mixer 用于支持额外音频格式,包括 MP3、OGG、WAV 等。 SDL_ttf 用于 TrueType 字体渲染。 SDL_rtf 用于简单 RTF 渲染支持。

    2.3K30

    飞桨开发者又出新工具!让AI也能听懂你的话

    noise.py 注意:以上代码只支持在Linux下执行,如果是Windows的话,可以获取程序中DATA_URL单独下载,建议用迅雷等下载工具。...然后把download()函数改为文件绝对路径,如下。我把aishell.py文件单独下载,然后替换download()函数,再执行该程序,就会自动解压文件文本生成数据列表。...1)语音文件需要放在dataset/audio/目录下。 2)把数据列表文件存在dataset/annotation/目录下,程序会遍历这个文件所有数据列表文件。...启动服务之后,如果在本地运行的话,在浏览器上访问http://localhost:5000,否则修改为对应 IP地址。...打开页面之后可以选择上传长音或者短语音音频文件,也可以在页面上直接录音,录音完成之后点击上传,播放功能只支持录音音频。

    73620

    00-ALSA框架实现录音

    要求 根据现有音频框架实现一个录音程序,要求:PCM格式, 采样率16K, S16LE, 单通道 使用ffmpeg 将录音音频转换为采样率为48K wav格式文件 使用ffmpeg 将录音音频转换为...MP3格式文件 使用Audacity查看你录音频谱 使用sndpeek分析你音频数据,并写出心得 平台 Linux-3.4.2 arm-linux-gcc-4.3.2 精简版yaffs文件系统 JZ2440...1.0.27.2 mkdir /dev/snd cd /dev/snd/ ln -s /dev/controlC0 ln -s /dev/pcmC0D0p ln -s /dev/pcmC0D0c 测试播放音频...aplay Windows.wav 应用程序 wav_parser 主要对wav音频文件分析和封装,移植开源wav封装库 capture 具体实现录音操作操作 ffmpeg转换 音频文件采样率转换为...48k wav 格式文件 具体实现: ffmpeg -i input.wav -ar 48k output.wav 音频文件转换为mp3格式文件 具体实现: ffmpeg -i input.wav

    2.3K20

    Linux下使用ffmpeg播放mp3aacwav文件音乐播放器应用

    是不是没什么新意,不过一直使用ffmpeg程序,还没有用ffmpeg代码接口实现播放器,并且还需要使用linuxalsa接口播放出声音,所以做出来还是觉得有点意思; ---- 需求:实现一个嵌入式linux...支持mp3/aac/wav文件播放器 实现:所以考虑基于ffmpeg 实现一个嵌入式linux播放器,这里主要应用ffmpeg协议处理和音频解码能力,虽然网上代码很多,不过由于版本差异,例子程序接口存在差异...关键函数:av_packet_unref(&input_packet); ---alsa播放设备如何枚举?...-enable-decoder=ac3 1、cpp文件引用ffmpeg库,出现链接错误,需要在包括头文件地方增加两个前缀: //.cpp #include  #ifdef.../Test1.wav 0 4、使用alsa接口,完整播放出mp3文件声音代码; //static const char *device = "hw:1,0"; /* playback device

    3.4K30

    Android音频编辑之音频转换PCM与WAV

    在Android平台上,常用音频格式有: WAV WAV格式是微软公司开发一种声音文件格式,也叫波形声音文件,是最早数字音频格式,被Windows平台及其应用程序广泛支持。...现在创建OGG文件可以在未来任何播放播放,因此,这种文件格式可以不断地进行大小和音质改良,而不影响旧有的编码器或播放器。...WAV文件采样率,声道数,采样位数,音频数据大小等信息,这样这个WAV就可以被音频播放器正确读取并播放,而单纯PCM文件因为只有编码音频数据,没有其他描述信息,所以无法被音频播放器识别播放。...PCM文件WAV文件 现在我们得到了解码后PCM文件,但是它是不可直接播放,因为不带音频相关格式信息,下面我们将PCM和指定音频相关格式信息去转换得到一个可播放WAV文件: /** * PCM...然后是如何音频文件解码为PCM数据文件,以及得到PCM编码WAV文件,有了以上理解后,后续进行音频文件裁剪,插入,合成等编辑操作就更容易理解了。请继续关注后续音频编辑操作处理。

    5.9K30

    (译)SDL编程入门(21)音效和音乐

    就像之前一样,只是把头文件、库文件和二进制文件放在正确地方,并把你编译器配置成使用它们。...第一个参数设置声音频率,44100是一个标准频率,在大多数系统都可以使用。第二个参数确定采样格式,这里我们同样使用默认格式。第三个参数是硬件通道数,这里我们使用是2个通道立体声。...void close() { //Free loaded images gPromptTexture.free(); //Free the sound effects...每一个被播放声音效果都有一个与之相关通道。当你想暂停或停止一个正在播放效果时,你可以停止它通道。...当按下0时,如果音乐正在播放,我们使用Mix_HaltMusic[18]停止音乐。 在 这里[19]下载本教程媒体和源代码。 原文链接[20] 「关注我公众号:编程之路0到1」 ?

    1K20

    嵌入式linux如何尽快播放开机音乐

    今天在考虑如何尽快启动一个应用程序,播个开机音乐什么。.../bin/sh /etc/init.d/zqbNetwork start 这个应用程序呢,暂且叫做 zqbMusic 吧,是用来放音乐,此处想放点开机提示音,所以我们有个音乐文件,叫kaiji.wav.../zqbMusic kaiji.wav播放了。大概一秒音乐。 那么问题就是,如何尽快播放这个开机提示音乐。 先来个简单粗暴,直接加到rcS脚本后面, #!.../zqbMusic kaiji.wav 那么就在五秒多时候,开始播放播放完毕六秒多,打印出了"/ #",这样就比较不好了,我“/ #”之后还要启动其他应用程序呢,放音乐直接延迟了其他事情一秒多。...再提前就要到内核里面去了,唔,在驱动初始化完毕之后,补一个initcall,就用来放音乐,理论似乎也是可以,就是有点别扭。 再提前?

    1.6K10

    stm32mp157开发板声卡接口测试

    4.5 声卡接口测试 4.5.1 耳机接口测试方法 此节演示使用三段式耳机在 100ask_stm32mp157_pro 开发板录制声音、播放音频。...test.wav :指定录音文件名称以及格式。其中 test 是文件名称,wav 是音频格式。支持格式有wav、raw 和 au 等。...播放音频: 将耳机插入开发板耳机孔,使用 aplay 进行播放音频文件: [root@100ask:~]# aplay -v --format=cd --device=plughw:0,0 test.wav...test.wav :指定录音文件名称以及格式。其中 test 是文件名称,wav 是音频格式。支持格式有wav、raw 和 au 等。...注意:录音后再播放所录得音频文件,只有一边耳朵有声音,因为只有一个麦克采集单声道数据。 还可以通过 ssh 登录开发板,将电脑中 wav 格式音频上传到开发板,再用 aplay 进行播放

    2.4K30

    基于Kersa实现声纹识别

    自定义数据训练 本节介绍自定义数据集训练,如何不想训练模型,可以直接看下一节,使用官方公开模型进行声纹识别。....wav 1 dataset/ST-CMDS-20170001_1-OS/20170001P00001I0003.wav 1 1、本项目默认是支持Aishell,Free ST-Chinese-Mandarin-Corpus...训练 在执行训练之前,可能需要修改train.py中几个参数。 gpu是指定是用那个几个GPU如何多卡情况下,最好全部GPU都使用上。...resume这个是用于恢复训练如何之前有训练过模型,可以只用这个参数指定模型路径,恢复训练。 batch_size根据自己显存大小设置batch大小。...n_classes是分类数量,这个可以查看上一步生成数据列表最后一个得到分类数量,但也记得加1,因为label是0开始

    3.7K61
    领券