delphi - 将系统声音(立体声混音)录制到文件中

标签 delphi audio system record wmp


我正在尝试从播放网络广播流的 activex WMP 控件中录制声音,并且由于没有简单的方法来做到这一点,所以我决定录制系统声音或所谓的“你听到的声音”(立体声混音,在许多系统中都被禁用)件)。

那么,我如何录制系统声音并将其保存为 mp3、wav...文件,而不启用立体声混音,或者如何以编程方式启用它,而无需用户交互。

我没有音频应用程序的经验,所以请不要说尝试

  1. 低音 - www.un4seen.com
  2. NewAC - symmatica.net/newac/
  3. WavePlayer - www.delphiarea.com/products/delphi-components/waveplayer/

没有给我代码示例,因为我已经尝试了解如何使用,但是,如果我这样做,我不会在这里问你。

我是新来的,这是我的第一个问题
[我希望我能得到好的答案]

提前致谢:]

最佳答案

我们(在问题评论中)得出的结论是,录制 radio 流可能比从声卡录制更好:

看看 IndySynapseICS。 (Delphi 随 Indy 开箱即用)

每个组件都应该有示例,展示如何从 HTTP/TCP 服务器读取数据。

请注意,数据可能不仅仅是普通的 MP3 或 WMV,但通常有某种插入标题信息并将声音数据分成 block 的框架 .

有许多流媒体服务器(即 ShoutcastIcecast 等)具有不同的音频数据编码方式。

您应该首先了解您的网络广播正在运行哪种流媒体服务器。当您发送 HTTP GET 请求 时发生的第一件事通常是包含一些标识信息的响应。

您也可能最终得到一个包含真实 URL 的播放列表文件。

PS:您可能想在 SO 上搜索(或询问)其他问题,以获取有关我提到的主题的更多信息。

希望有帮助。

关于delphi - 将系统声音(立体声混音)录制到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8903487/

相关文章:

delphi - 如何使用两个具有不同对齐方式(水平和垂直)的 TSplitter?

delphi - 找出哪个进程注册了全局热键? (Windows API)

android - 如何在Android中将3gpp格式的音频文件转换为mp3

c++ - 如果整个应用程序都是虚拟映射的,为什么 new 会进行系统调用?

c - 在 FreeBsd 和 Linux 上使用 O_APPEND 打开文件看起来不像是原子操作?

Delphi:StringGrid、位置和上下文菜单

delphi - 使用实时弹出菜单最小化 Delphi 应用程序

java - 混合 8 位 8000Hz PCM_ULAW 样本的最简单方法是什么?

c - 使用 add + shift 将 pcm16 转换为 pcm14

iphone - SystemSoundID有时随设备音量而变化