arvin_fresh

arvin_fresh

0个粉丝

5

问答

0

专栏

1

资料

arvin_fresh  发布于  2017-07-24 16:36:47
采纳率 0%
5个问答
4791

怎么保存采集到的PCM音频数据[HI3531A]

   
各位大虾好,
        想问下音频采集获取到的PCM数据怎么保存的,
        下面是测试例子,但,保存下来的PCM文件总是不对,请各位帮忙看下是否本人操作错了。先谢谢了!
       
                    AUDIO_FRAME_S stAudioFrame;
                int ret = HI_MPI_AI_GetFrame(AiDev, AiChn, &stAudioFrame, NULL, 0);
                if (0 != ret) {
                    printf("[Err] HI_MPI_AI_GetFrame Failed: 0x%x\n", ret);
                    continue;
                }
                printf("BW %u ", stAudioFrame.enBitwidth);
                printf("SM %u ", stAudioFrame.enSoundmode);
                printf("Ts %llu ", stAudioFrame.u64TimeStamp);
                printf("Seq %u ", stAudioFrame.u32Seq);
                printf("Len %u\n", stAudioFrame.u32Len);
                               
                unsigned char *pLeft = stAudioFrame.pVirAddr[0];
                unsigned char *pRight = stAudioFrame.pVirAddr[1];
                unsigned int PcmLenPerCh = stAudioFrame.u32Len;
                unsigned int PcmLenBothCh = PcmLenPerCh*2;
                unsigned char tmpBuf[8192] = {0};
                for(int i=0; (i+3)                 {
                    tmpBuf = *pLeft;
                    pLeft++;
                    tmpBuf[i+1] = *pLeft;
                    pLeft++;

                    tmpBuf[i+2] = *pRight;
                    pRight++;
                    tmpBuf[i+3] = *pRight;
                    pRight++;
                }

                if (NULL != AiFileFp)
                {
                    fwrite(tmpBuf, PcmLenBothCh, 1, AiFileFp);
                }
我来回答
回答5个
时间排序
认可量排序

isupercar

0个粉丝

0

问答

0

专栏

0

资料

isupercar 2017-07-24 23:04:53
认可0
你这是想搞双声道的吧?

arvin_fresh

0个粉丝

5

问答

0

专栏

1

资料

arvin_fresh 2017-08-01 19:19:21
认可0
是的,问题已解决,跟数据处理没关系,是底层没做好。

fengzheng822

0个粉丝

5

问答

0

专栏

0

资料

fengzheng822 2017-11-16 16:50:52
认可0
底层没做好??你指的是驱动吗?输出的文件都是噪声,对吧?请问你是怎么解决的?

wintel

0个粉丝

0

问答

0

专栏

0

资料

wintel 2017-12-07 11:01:46
认可0
unsigned char *pLeft = stAudioFrame.pVirAddr[0];
修改成
unsigned short *pLeft = stAudioFrame.pVirAddr[0];
pRight 类似

_沉思

0个粉丝

6

问答

0

专栏

0

资料

_沉思 2017-08-10 22:51:57
认可0
底层没做好??你指的是驱动吗?输出的文件都是噪声,对吧?请问你是怎么解决的?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区