std::ofstream 写本地音频

最近线上 PK 偶然出现双方主播互相听不见声音的情况,在日志不能明确体现问题时,就需要抓下主播本地的音频和远端的音频来确定数据是在哪消失的

所以我们用到一个比较简单的流写出的标准库类:std::ofstream

通过 std::ofstream 类,可以创建一个用于写入文件的输出流对象,可以将数据写入到文件中

下面是一个简单的例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

#include <fstream>

// 音频回调,也可以在发送音频数据时写入

void OnAudioData(void* data, int size, int channels, int bit_per_sample){

  send_audio_date.write((char*)data, size);

}

void Stop(){

  send_audio_data_.close();

}

main(){

  ...

  std::ofstream send_audio_data_ =

      std::ofstream("send_audio", std::ios::out | std::ios::binary);

  // 音频数据采集的过程,此处省略<br>  // 48000hz, 16bit, 2channels

  ...

  // 停止发送数据

  Stop();

}

  

本地会生成一个无格式的 send_audio 文件,如何查看音频是否符合预期呢

我们要借助一个音频软件:GoldWave

加载本地文件后,界面如下:

要注意的是,要输入正确的音频速率和位数等参数

这是我例子中音频的参数,供大家参考

点击左上角的播放按钮即可播放音频数据,一般情况,有数据的话,是有波形的

而波形也分两种,初中物理也学过,噪音是杂乱无章的,而人声或者音乐是有规律的,简单分辨后,即可找出问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生的狒狒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值