标题:线程突然不运作
作者:om181225
日期:2015-02-03 21:05
内容:
程序通过开一个对音频口进行数据采集,用乒乓缓存的方法对接收的数据进行处理,每次采集大约半个小时之后不在采集了,程序也不显示错误,也不卡
#1 [jnny_cn 02-03 23:07]
上代码,这么说也帮不了你什么
#2 回 jnny_cn 的帖子 [om181225 02-04 08:00]
jnny_cn:上代码,这么说也帮不了你什么 (2015-02-03 23:07)
#ifndef LISTENINGTHREAD_H
#define LISTENINGTHREAD_H
#include
#include
#include
#include
#include
#include
#define SAMPLE_RATE 96000 //采样率
#define CHANNEL_COUNT2 //采样通道
#define SAMPLE_SIZE16//采样位数
#define RECORDING_TIME50//每次采样毫秒数
#define TOTAL_SIZE384000//缓存区总大小 Byte
#define USED_SIZE 96000 //缓存区使用大小 Byte
class listeningThread : public QThread
{
Q_OBJECT
public:
explicit listeningThread(QObject *parent = 0);
~listeningThread();
char *buf0Addr() { return buf0->data(); }
char *buf1Addr() { return buf1->data(); }
qint64 buf0Size() { return bytesReaded0; }
qint64 buf1Size() { return bytesReaded1; }
bool listeningBufFlag() { return bufFlag; }
protected:
void run();
signals:
void addLog(QString newLog, int flag);
void buf0Full(char *buf0Address, qint64 buf0Size);
void buf1Full(char *buf1Address, qint64 buf1Size);
public slots:
vo ..
#3 回 jnny_cn 的帖子 [om181225 02-04 08:02]
jnny_cn:上代码,这么说也帮不了你什么 (2015-02-03 23:07)
在电脑上跑好使,但移植到arm上就30分钟不行了
#4 [jnny_cn 02-04 09:46]
既然电脑中正常,是否有办法测试arm中的音频硬件或是底层软件驱动的问题呢?
我想你电脑和arm应该是不同的硬件吧?
#5 回 jnny_cn 的帖子 [om181225 02-04 14:50]
jnny_cn:既然电脑中正常,是否有办法测试arm中的音频硬件或是底层软件驱动的问题呢?
我想你电脑和arm应该是不同的硬件吧? (2015-02-04 09:46)
这问题折磨一个星期了现在解决了 将readAudioData()函数里面的bufFlag = !bufFlag 写成
bufFlag = false bufFlag = true就好使了 比较无语