音频可以通过FD送入耳机 [英] Audio through CAN FD into headphones

查看:17
本文介绍了音频可以通过FD送入耳机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用12位分辨率的ADC录制音频,获取样本缓冲区并通过CAN FD将其发送到另一个设备,该设备获取该音频的样本并创建.wav并播放它。问题是,我看到麦克风的数据通过CAN FD发送到另一台设备,但我无法将这些数据正确地转换为.wav文件,并通过麦克风听到我说的话。我只听到哔声。

我正在创建新的.wav每4个CAN FD消息,以便进行某种实时通信并减少延迟,但我认为这是不可能的,或者如果我的想法正确的话。

在此线程中,我获取由CAN FD发送的消息并将其连接到缓冲区中,以便将其引入到.wav文件中。我尝试了更大的缓冲,但这并没有改变结果。 我如何才能从CAN FD获取数据并听到它?

澄清:我知道使用CAN FD传输音频不是正确的方式,但它适用于大型项目。

struct canfd_frame frame;
 CAN_MSG msg;
    int trama_can[72];
    int nbytes;
    while (status_libreria == 0)
        ;
    unsigned char buffer[256];
    // FILE * fPtr;
    int i=0,x=0;
    //fPtr = fopen("Test.txt", "w");
    while (1) {
        do {
            nbytes = read(s, &frame, sizeof(struct canfd_frame));
        } while (nbytes == 0);
        msg.id.ext = frame.can_id;
        msg.dlc = frame.len;

        if (msg.dlc > 8)
            msg.dlc = 8; //Protecci�n hasta adaptar AC3LIB a CANFD

        Numas_memcpy(&(msg.data.bdata), &(frame.data), msg.dlc);

        can_frame_2_ac3lib(&msg, BUS_VERTICAL);
        for(x=0;x<64;x++) buffer[i*64+x] = frame.data[x];
        printf("%d 
",frame.data[x]);
        printf("i:%d 
",i);
        // Copiar datos a fichero.wav y reproducirlo simultaneamente
        if (i == 3) {
            printf("Datos IN
");
            write_wav("prueba.wav",256 , (short int *)buffer, 16000);

            //fwrite(buffer,1,sizeof(buffer),fPtr);
            //fclose(fPtr);
            system("aplay prueba.wav -f cd");
            i = 0;
            system("rm prueba.wav");
        }
        i++;
    }

32 first bytes of the audio file being recorded

如图所示,数据正在被记录。此外,此数据与ADC中的数据相同,但当我播放它时,我只听到噪音。

推荐答案

先简化问题。确保您可以先以低速率将已知数据从一端传输到另一端。我相信下面的建议听起来太微不足道了。但在你完全确信自己完全理解之前,我预测你还会有很多困难。

慢-每秒一帧,甚至更慢。

  • 学习将0x55字节从一端发送到另一端,并在接收方进行验证。
  • 学习在一帧中发送几个0x55并进行验证。
  • 学习发送0x12345678-确保另一端的字节顺序正确
  • 学习发送计数器。在接收方进行检查,确保没有丢失任何数据。

现在再做一次,但速度快10倍。

继续,直到您可以以音频所需速率的10倍发送计数器,而根本不会丢弃任何帧,持续数分钟,然后数小时。

给系统的其余部分施加压力,以确保它在压力下仍能工作。

现在,您才能开始学习如何发送音频。

相信我,你会学到很多!

这篇关于音频可以通过FD送入耳机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆