arm linux 语音唤醒,arm linux 语音采集和播放程序 Input/output error 问题

在ARM9 Linux系统下,作者编写了一个语音采集和播放程序,但在执行时遇到了Input/output error的问题。问题出现在循环读写过程中,read函数返回错误。通过在write后添加ioctl同步操作,程序可以正常运行,但会导致延迟增加。寻求类似问题的解决方案。
摘要由CSDN通过智能技术生成

在arm9 linux 系统下,写简单的 语音采集和播放程序 遇到问题:

步骤

1.将/dev/dsp 以O_RDWR 和 同步方式打开,设置采样频率8000,双通道,16位

2.在循环中read 160字节,接着write刚读到的160字节。

问题

这段代码在Linux - pc上,编译运行是正常的,但是在arm上,刚开始几个周期是正确的,后来read就返回错误 错误码为5 - Input/output error。

不知道是什么原因?

如果在write之后,写上ioctl(f,SNDCTL_DSP_SYNC,NULL),程序正常,不过每个读写时间会很长。

代码

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define LENGTH 5          /* 存储秒数 */

#define RATE 8000        /* 采样频率 */

#define SIZE 16                /* 量化位数 */

#define CHANNELS 2      /* 声道数目 */

#define READ_WRITE_NUM  160

/* 用于保存数字音频数据的内存缓冲区 */

unsigned char *pbuf = new unsigne

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值