gpt4 book ai didi

delphi - 无法播放原始音频文件

转载 作者:行者123 更新时间:2023-12-03 00:02:37 27 4
gpt4 key购买 nike

我有一个从相机捕获的原始音频文件,格式为 u-law mono 8KHZ(无 wav header )。我遇到的问题是,当我尝试播放文件时,我似乎听到了不好的噪音。我已经通过一个名为 goldwave 的程序插入了原始音频,它能够完美地播放文件。我确定我只是缺少一些简单的东西。

我一直在尝试使用 waveout 函数,但没有运气。我是否需要先从 u-law 解码数据,然后再尝试将其插入 waveout 函数?

最佳答案

如果您只是使用 Windows API 中的 waveOut 函数,waveOutOpen 的第三个参数是指向 WAVEFORMATEX 的指针结构体:

MMRESULT waveOutOpen(
LPHWAVEOUT phwo,
UINT_PTR uDeviceID,
LPWAVEFORMATEX pwfx,
DWORD_PTR dwCallback,
DWORD_PTR dwCallbackInstance,
DWORD fdwOpen
);

一个 WAVEFORMATEX结构允许您指定格式,并且 Windows 应该能够执行 u-Law 而无需您安装任何东西。
typedef struct {
WORD wFormatTag;
WORD nChannels;
DWORD nSamplesPerSec;
DWORD nAvgBytesPerSec;
WORD nBlockAlign;
WORD wBitsPerSample;
WORD cbSize;
}WAVEFORMATEX;

设置 wFormatTagWAVE_FORMAT_MULAW ,或 0x0007。确保正确填写 1 个 channel 的其他参数,其中 8000 个样本/秒和 8 位/样本。

如果失败,请在打开音频设备并播放文件的位置发布代码。或者这里是 u-Law 解码到线性 PCM ( ulawDecode ) 的 delphi 实现,所以你可以自己解码:

http://www.koders.com/delphi/fidEAA58384F59968FEDD0670F6EABF09DF3A5C58A5.aspx?s=algorithm#L19

关于delphi - 无法播放原始音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3575022/

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