![]() |
1
0
问题很简单,那就是USB硬件故障。我需要拔掉USB摄像头并重新插入。 但无论如何,我想分享我的知识。 1) 我们应该使用异步机制来获取和发送音频数据包到播放端。 在第一个缓冲区回放之前,我们必须避免发送新的缓冲区进行回放。该方法被称为-“double”甚至“tripple”缓冲。 使用VFW,您可以非常轻松地使用WM_CAP_GET_SEQUENCE_SETUP消息和CAPTUREPARAMS结构来组织它。 wNumAudioRequested参数用于设置将循环使用多少不同的缓冲区,以将音频数据发送到audioCallback。 默认设置为10,绰绰有余。 2) 检查您的音频信号是否为有效信号的最佳方法是:在WAVESTREAM回调中,将接收到的缓冲区中的字节与音频数据编组为托管的静态字节数组。 然后,在回调中,使用Console输出50-100个样本值。写(array[i]+“”),看看这些值是否在你的声音上下变化。 考虑到零电平处于WAVEFORMATEX的中间->wBitsPerSample值,在我的情况下(8位/样本),值为125 126 127 128 129。它被接受为静音、无信号或零噪声。 一旦你确定你有正确的音频数据,现在你就可以更进一步地实现你的目标了。 3) 记住,当你从麦克风模式录制时,最好关闭本地输出波设备。您的目标是收集音频数据以录制或通过网络发送。不要尝试获取数据并在本地发送。 有时,扬声器的延迟值比麦克风数据采样的速度稍高,而且缓冲区会变得混乱,就像我的情况一样。 然后我就遵循了这一原则——“录音是当你收集、保存或发送音频数据时,它应该在录音后或同时播放,但要在终端PC上播放。”。 4) 用代码继续 |
![]() |
Una Persona Normal · 在滑块上选择特定值时播放声音 2 年前 |
![]() |
ESB691 · 停止使用javascript循环音频,但完成播放迭代 3 年前 |
![]() |
loltrox · Python中播放和暂停音频的理想模块是什么? 3 年前 |
![]() |
Demetris · 如何在音频播放器中传递React道具? 3 年前 |
|
Uplink001 · SceneKit:定位音频不起作用 7 年前 |
![]() |
Belphegor · WAV文件中的“ChunkSize” 7 年前 |