问题标签 [audio-recording]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8137 浏览

winapi - 如何捕捉正在播放的音频?

有谁知道如何以编程方式捕获正在播放的声音(即来自声卡的所有声音,而不是麦克风等输入设备)。

0 投票
4 回答
3259 浏览

c# - 使用 C# 从 line-in 连续采样的最简单方法是什么

我想使用 C# 不断地从我的 PC 的音频线中采样(然后处理该数据)。进行抽样的最佳方法是什么?

0 投票
4 回答
14719 浏览

iphone - 如何在 iPhone 上录制 AMR 音频格式?

录音机不需要未压缩的线性 PCM 音频。压缩AMR会很好。为录制音频而构建的 iPhone 框架非常简单,但我发现的用于设置音频格式(来自 Apple)的唯一示例使用 LinearPCM。我尝试了各种其他的值组合,但似乎没有任何效果。

有没有人有任何实际记录的代码AMR

编辑: AMR 格式是设置数据类型的选项之一,但其他选项(数据包大小、帧大小等)似乎不匹配,无论我将它们设置为什么。

编辑:这是我的 PCM 版本:

0 投票
3 回答
1896 浏览

shell - 将 Shoutcast 流延迟 12 小时(Linux/bash)

我住在世界的另一端(现在是 GMT+1,现在是 GMT+13),我想念我以前的地面广播电台。它有一个 Shoutcast 流,我想简单地将它延迟 12 小时,以便在我想收听它时它始终可用,以使其时区与我的时区同步的方式。

我将其设想为在我的服务器主机上运行的脚本。

一种天真的方法只是在环形缓冲区中分配足够的内存来存储整个 12 小时的延迟,并通过管道输入 streamripper 的输出。但是流是 128kbps 的 mp3,这意味着 (128/8) * 60 * 60 = ~56MB/小时,或者整个 12 小时缓冲区的 675MB,这并不是那么实用。另外,我可能不得不处理我的服务器主机,只是在某个超时后终止进程。

那么,有哪些实际可行的策略呢?

0 投票
4 回答
4518 浏览

java - 如何在 Java 中对多声道声音输入进行采样

我意识到这可能是相对利基的,但也许这就是为什么无论如何都可以问这个问题的原因。我正在寻找一个硬件多输入录音控制台(例如 Alesis IO 26)来接收一个 Adat 光管 8 通道输入来进行信号处理。由于我还没有购买该设备并且需要确定这是否可行(预算问题),我想问一下是否有人有使用 Java 中的所有这 8 个输入数据的经验?我已经看到了大量使用 Javax.sound.sampled 库录制声音的示例,但我找不到任何超过 2 的多通道信息。我感兴趣的是将 8 个通道单独作为单声道源进行采样对它们执行一些简单的 DSP。硬件设备会被视为一个混音器吗?8个通道被表示为8条线?我希望我的术语是正确的。

如果有人可以向我指出任何相关信息,我将不胜感激。谢谢!

0 投票
2 回答
570 浏览

java-me - 如何在 J2ME 中捕获 MP3?

我能够通过 Manager.createPlayer("capture://audio") 捕获 WAV 格式的音频。但是,有没有办法在 J2ME 中捕获 MP3 格式的音频?

0 投票
1 回答
593 浏览

linux - 在 J2ME WTK 模拟器中通过 Linux 捕获音频

是否可以在 Linux 平台上的 J2ME WTK 模拟器中捕获音频?这个论坛有人成功过吗?

0 投票
3 回答
2241 浏览

java - 使用 J2ME 删除文件会引发 IOException

我正在尝试使用 J2ME 的 FileConnection.delete() 方法删除文件,但每次调用 delete() 方法时都会引发 IOException。我写了一个条件语句来验证文件的存在,但不管这个事实,一个 IOException 被抛出。

根据FileConnection API,当对 FileConnection 对象调用 delete() 时,与该对象关联的所有流都将关闭,如果与特定文件关联的流发生任何后续操作,则会引发 IOException。

我尝试删除的文件已记录在同一个程序中,但在调用 delete() 方法后,我调用了 recordControl.reset()。这可能会导致抛出 IOException 吗?

我的问题可能是什么?

0 投票
4 回答
10023 浏览

winapi - 声音处理:我应该使用 DirectSound 还是直接使用 Win32 API?

我正在申请我将:

  • 从麦克风录制并对输入进行一些实时处理
  • 播放 MP3 文件(一首普通歌曲),但实时处理输出
  • 有时我也需要在这首歌上播放额外的声音,但我想我可以通过简单地添加缓冲区来做到这一点。

简而言之,我需要有用于录制和播放的循环缓冲区,并且我需要每 20 毫秒左右向输出缓冲区“输入”即将播放的新数据。

我一直在研究 DirectSound,它似乎并没有多大帮助。对输出缓冲区的读取和写入似乎与 Win32 非常相似,它似乎有帮助的唯一地方是在主歌曲上播放“附加声音”。

我应该使用 DirectSound,还是应该直接使用原始 Windows API?
DirectSound 会为我做些什么吗?

提前致谢!

0 投票
4 回答
6048 浏览

java - Java AudioSystem 和 TargetDataLine

我正在尝试从我的 PC 的线路中捕获音频,为此我正在使用AudioSystem类。静态 AudioSystem.write 方法有两种选择之一:写入文件或写入流。我可以让它写入文件就好了,但是每当我尝试写入流时,我都会抛出 java.io.IOException (未指定流长度)。至于我的缓冲区,我使用的是 ByteArrayOutputStream。我应该在其他地方使用或弄乱另一种流吗?

同样在相关主题中,可以通过调用read直接对 ( TargetDataLine ) 中的音频线进行采样。这是进行音频捕获或使用 AudioSystem 的首选方式吗?

更新 请求的源代码: