- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 Windows 编写一个简单的 Babymonitor(个人使用)。婴儿监视器应该只检测麦克风的 dB 级别并在一定音量下触发。
经过一番研究,我找到了 Bass.dll 库,并发现了它的函数 BASS_ChannelGetLevel
,这个函数很棒,但似乎有限制,不符合我的需求(峰值等于 DWORD 值) )。
在示例中,我找到了一个 livespec 示例,它“几乎”是我需要的。该示例使用 BASS_ChannelGetData
,但我不太知道如何处理返回的数组...
我想让它尽可能简单:检测麦克风的音量为 dB 或任何其他值(例如值 0-MAXINT)。
如何使用 Bass.dll 库来完成此操作?
最佳答案
BASS_ChannelGetLevel
返回上限为 0dB 的值(在本例中返回值为 32768)。如果您调整源级别(声卡设置中较低的麦克风级别),那么它就会正常工作。
另一种方法,如果您想获得无上限的值,请使用 BASS_ChannelGetLevelEx
函数:它返回浮点级别,其中 1 是对应于 BASS_ChannelGetLevel 的 32767 的最大 (0dB) 值,但它可以超过 1 以检测您可能需要的高于 0dB 的声音级别。
我还建议您监视一段时间的声音级别:仅当特定级别存在至少 2-3 秒时才触发(这样您就可以排除误报)。
关于delphi - 带 Bass.DLL 的简单婴儿监视器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40327832/
我有 Dyadic (mother/infant) 重复测量数据的长格式。 我有三个 ID 变量:个人 ID、Dyad ID 和“状态”。 ID DYAD 地位 日期 婴儿体重 001 01 0 01
我是一名优秀的程序员,十分优秀!