我可以访问 PCM 音频缓冲区的音频流。我应该清楚我无权访问音频文件。我只能访问 4096 字节的音频数据流。
PCM 缓冲区采用以下格式:
- PCM 诠释 16
- 小端
- 两个通道
- 交错
要在标准浏览器上支持音频播放,我需要将音频转换为以下格式:
- PCM 浮点数 32
- 大端
- 两个通道(最多)
- 去交错
该音频来自 iOS 应用程序,因此我可以访问 Swift 和 Objective C(尽管我对 Objective C 不太满意......这使得 Apple 的音频转换器服务几乎无法使用,因为 Swift 真的不喜欢指针)。
此外,播放将在浏览器上进行,因此我可以在客户端 Javascript 或服务器端处理转换。我足够精通以下服务器端语言来进行转换:
- Java(首选)
- PHP
- 节点.js
- Python
如果有人知道以任何这些语言执行此操作的方法,请告诉我。我已经在这方面工作了足够长的时间,以至于我可能会理解如何做到这一点的非常技术性的描述。
我目前的计划是使用按位运算对左右声道进行去交错,然后使用Web Audio API将 Int 16 缓冲区转换为 Float 32 缓冲区。这看起来是个好计划吗?
任何帮助表示赞赏,谢谢。