时间戳转换器

Unix 音频系统 API

日期:2023-02-25     浏览:18    
【中文标题】Unix 音频系统 API【英文标题】:Unix audio system API 【发布时间】:2012-03-26 14:57:41 【问题描述】:

我想将现有的 Windows 应用程序移植到 Unix,但我找不到有关 Unix 音频系统的某些信息,如果有人能分享他们在这方面的经验,我将不胜感激。

我该怎么做:

获取所有连接到 PC 的声卡? 获取声卡通道数? 获取每个声道的当前声卡音量? 连接到音频系统并计算正在播放的声音的响度(类似于 Windows 7 音量控制 - 它用绿色条绘制“响度”)。 (我了解所涉及的数学,但看看系统是否已经提供了类似的包)?

是否可以为每个 Unix 系统执行此操作,或者我必须为每个系统执行此操作(在 FreeBSD、Ubuntu...上)?

【问题讨论】:

这里有一个类似的问题和答案:***.com/questions/9345766/… 【参考方案1】:

Unix 有一大堆音频框架。您可能最终不得不以平台/框架相关的方式做一些工作。我建议开始使用 PortAudio/PortMixer。它由 Audacity 使用,因此希望它可以满足您的大部分需求。但它应该支持最常见的 Unix 变体,例如 Mac OS X、Linux-Alsa、Linux-OSS、FreeBSD,我想还有更多。

【讨论】:

【参考方案2】:

在各种仍然存在的 Unix 上有许多不同的竞争声音 API。

Linux 似乎已经融合了PulseAudio API 用于通用的声音输出;我的理解是,这与 DirectSound 具有相似的功能。您还应该研究ALSA,它是一个仍然被广泛使用的较低级别的API,以及JACK,它与PulseAudio 处于同一级别,但专门用于录音棚类型的工作。这些应该可以在所有最近的 Linux 发行版上使用。 (注意:如果您试图以第三方软件供应商的身份分发 Linux 的编译代码,那么您做错了。分发源代码,分发版将为您编译它。)

文档说PulseAudio 和JACK 也可以在FreeBSD 上使用,但我不知道它们在哪里受欢迎。我不知道任何其他 BSD 或剩余的专有 Unix。

远离任何自称为“OSS”的东西,除非你别无选择。这最初是一个古老的、早已过时的内核级声音 API 的名称,仅适用于 Linux。最近一次尝试复活它(“OSSv4”)AFAICT 只成功地产生了一个僵尸。

【讨论】:

您是否知道获取声音流(使用数字信号处理来计算响度)甚至更好的当前音频的声音“响度”的最简单方法(哪个 API)? 不,抱歉,我从来没有真正用这些编程过。

相关文章

uniapp实现音频播放抢占系统音频焦点(代码片段)

{项目为使用uniapp框架开发的Android/iOSAPP应用实现功能需求假设手机正在播放音乐,当前APP处于前台收到消息,需播放提示音提示用户。目标为降低后台正在播放音乐的音量,播放提示音,播放完毕后恢复后台音乐...}

将 VST 音频效果/插件应用于音频文件

{】将VST音频效果/插件应用于音频文件【英文标题】:ApplyVSTaudioeffect/plugintoaudio-file【发布时间】:2010-12-0116:06:17【问题描述】:这是我在这里偷偷摸摸了一段时间后的第一个问题。所以放过我吧。我需要通过CLI或C++将iZotopeVinylVST...}

android音频api(代码片段)

{Android系统提供了四个层面的音频API:Java层MediaRecorder&MediaPlayer系列;Java层AudioTrack&AudioRecorder系列;Jni层opensles;JNI层AAudio(AndroidO引入)下面分别介绍这些API的使用及特点。1.MediaRe}

android音频录制-mediarecord(代码片段)

{Android音频录制(一)-MediaRecordAndroid系统为我们提供了三种录制音频的方式MediaRecord(JavaAPI)AudioRecord(JavaAPI)OpenSLES(NativeAPI)这次我们先从最简单的MediaRecord说起系统提供的这个是最简单的录制API。不用关...}

如何通过 API 或 JS 结合视频和音频? [关闭]

{】如何通过API或JS结合视频和音频?[关闭]【英文标题】:HowtocombinevideoandaudiothroughAPIorJS?[closed]【发布时间】:2015-03-0600:13:01【问题描述】:我正在设计一个执行以下操作的系统:用户上传视频,JS代码查找视频长度。对现有服务...}

将录制的音频从浏览器保存到 Python API 作为 WAV 文件

{】将录制的音频从浏览器保存到PythonAPI作为WAV文件【英文标题】:PersistingrecordedaudiofrombrowsertoPythonAPIasWAVfile【发布时间】:2019-03-1622:46:57【问题描述】:我正在做一个需要我做的项目:从浏览器录制音频(目前通过MediaRecorderAPI...}

检查音频系统是不是正在使用

{】检查音频系统是不是正在使用【英文标题】:checkifaudiosystemisinuse检查音频系统是否正在使用【发布时间】:2012-03-2221:02:51【问题描述】:有没有办法以编程方式检查音频系统是否专门用于iPhone?如果应用程序在FaceTime或手机通...}

android音频——音频系统分析(代码片段)

{一、AudioPolicyService启动过程分析1.播放声音,声音从哪个设备播放出来是由audiopolicy决定的。2.在每一个声卡,对应一个output,一个output对应系统中都有一个线程与其对应。3.对硬件的访问操作是由AudioFlinger来完成的4.AudioPolicyServic...}

捕获音频/视频后无法播放系统声音

{】捕获音频/视频后无法播放系统声音【英文标题】:Can\'tplaysystemsoundsaftercapturingaudio/video【发布时间】:2011-12-1516:36:29【问题描述】:我正在使用AVfoudnation重新编码音频/视频。在开始捕获视频/音频之前,我需要使用系统声音播...}

在没有内核扩展的情况下录制系统音频

{】在没有内核扩展的情况下录制系统音频【英文标题】:Recordsystemaudiowithoutakernelextension【发布时间】:2014-08-0518:48:44【问题描述】:有没有办法在不使用OSX中的内核扩展的情况下录制系统音频。系统音频是指通过扬声器播放的...}

Copyright ©2021 时间戳转换器 小常识 114pp | 陕ICP备18005036号