【问题标题】:C++ playing audio live from byte arrayC ++从字节数组实时播放音频
【发布时间】:2017-08-07 21:25:16
【问题描述】:

我正在使用 C++,并且我的音频具有采样率、通道数和位深度。我还有一个 char 数组,其中包含我要播放的音频。我正在寻找类似的东西,发送四分之一秒(或其他一些短量的音频)来播放,然后发送更多,等等。这是否可能,如果它是如何完成的。

感谢您的帮助。

【问题讨论】:

    标签: c++ arrays audio


    【解决方案1】:

    我以前使用库 OpenAL 做过这个。

    这将需要一个相当复杂的答案,希望 OpenAL 文档可以引导您完成这一切,但 here 是我编写的源示例,它在 nodejs 中播放从一个 mumble 服务器输入的音频流。

    您可能需要提出更具体的问题才能获得更好的答案,因为这是一个相当大的话题。列出您可能正在使用的其他技术(例如目标操作系统)以及您是否已经在使用任何库也可能会有所帮助。许多桌面和游戏引擎已经有用于播放简单声音的 api,使用 OpenAL 可能比您真正需要的要复杂得多。

    但是,简单来说,解决方案的步骤是:

    • 枚举设备
    • 捕获设备
    • 将数据流式传输到设备
      • 将音频排入缓冲区alSourceQueueBuffers
      • 播放队列缓冲区alSourcePlay

    【讨论】:

    • 您是否碰巧知道有关以这种方式获取和使用 OpenAL 的任何好的教程。
    • 我确实提供了一个链接,虽然它跨越了几个文件,但并不太复杂。这是我刚刚从搜索中找到的一个全功能:pastebin.com/rYp59nYg 虽然它是一个相当低级的 api,但被认为是高级的。如果你运气不好,你可以看看像 LibSDL 这样的游戏引擎库,它不是那么低级,但有一些非常简单的用于 wav 文件等的 api。 wiki.libsdl.org/CategoryAudio
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2010-11-21
    相关资源
    最近更新 更多