Windows Phone 音频开发全解析
1. 音频输入与麦克风基础
在 Windows Phone 应用中处理音频输入,唯一的方法是使用 XNA Microphone 类。该类能让我们访问系统上的麦克风,不过系统里通常只有一个默认麦克风。设备上所有麦克风都遵循相同的基本音频格式,返回 16 位 PCM 单声道音频数据,采样率在 8000 Hz 到 48000 Hz 之间。
底层音频栈使用内部循环缓冲区来收集来自麦克风设备的输入音频,我们可以通过设置 Microphone.BufferDuration 属性来配置该缓冲区的大小。这个属性类型为 TimeSpan ,例如设置为 300 毫秒,缓冲区大小就是 2 * 16 * 300 = 9600 字节。 BufferDuration 必须在 100 毫秒到 1000 毫秒之间,且以 10 毫秒为增量。缓冲区大小可通过 GetSampleSizeInBytes 方法获取。
1.1 音频输入数据检索方法
有两种不同的方法来检索音频输入数据:
- 处理 BufferReady 事件 :当缓冲区接收到相当于 BufferDuration 时长的数据时处理数据,此方法最小延迟为 100 毫秒。
- 独立于 BufferReady 事件拉取数据 :可以按自己选择的时间间隔拉取数据,甚至比
超级会员免费看
订阅专栏 解锁全文
52

被折叠的 条评论
为什么被折叠?



