gpt4 book ai didi

web - 如何将 PCM 音频流转换为在线播放

转载 作者:行者123 更新时间:2023-12-04 15:45:16 28 4
gpt4 key购买 nike

我可以访问 PCM 音频缓冲区的音频流。我应该清楚我无权访问音频文件。我只能访问 4096 字节的音频数据 block 流。

PCM 缓冲区采用以下格式:

  • PCM 国际 16
  • 小端
  • 两个 channel
  • 交错

为了支持在标准浏览器上播放音频,我需要将音频转换为以下格式:

  • PCM float 32
  • 大端
  • 两个 channel (最多)
  • 去交错

此音频来自 iOS 应用程序,因此我可以访问 Swift 和 Objective C(尽管我对 Objective C 不是很满意...这使得 Apple 的 Audio Converter Services 几乎无法使用,因为 Swift 真的不喜欢指针)。

此外,播放将在浏览器上进行,因此我可以在客户端 Javascript 或服务器端处理转换。我精通以下服务器端语言来进行转换:

  • Java(首选)
  • PHP
  • Node.js
  • python

如果有人知道用这些语言中的任何一种执行此操作的方法,请告诉我。我已经在这方面工作了足够长的时间,以至于我什至可以理解关于如何做到这一点的非常技术性的描述。

我目前的计划是使用位运算来解交织左右声道,然后将 Int 16 缓冲区转换为带有 Web Audio API 的 Float 32 缓冲区。 .这看起来是个好计划吗?

感谢任何帮助,谢谢。

最佳答案

My current plan is to use bitwise operations to deinterleave the left and right channels, then cast the Int 16 Buffer to a Float 32 Buffer with the Web Audio API. Does this seem like a good plan?

是的,这正是您需要做的。我在我的应用程序中做完全相同的事情,这种方法效果很好,而且确实是唯一有意义的方法。由于带宽量,您不想从服务器向客户端发送 32 位浮点样本。在客户端进行转换。

关于web - 如何将 PCM 音频流转换为在线播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993126/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com