• 7272阅读
  • 10回复

求大神指点QAudioOutput问题 [复制链接]

上一主题 下一主题
离线rgbfkhkpyu
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-06
QAudioOutput  *m_audioOutput;
RepletQIODevice  *m_audioListenFile;
m_audioOutput->start(m_audioListenFile);


RepletQIODevice是我继承QFile创建一个新类,在这个类里面,我重现了readData(char *data, qint64 maxlen),让它读取我给它的数据来播放。memcpy(data, listenArray.left(maxlen).data(), maxlen);
但是当我没有数据给data参数的时候,只要我调用m_audioOutput->stop(); 程序就会崩溃。求各位大虾指点迷津。
离线rgbfkhkpyu

只看该作者 1楼 发表于: 2013-08-07
有没有知道的啊?求指点哦!
离线roywillow

只看该作者 2楼 发表于: 2013-08-07
据我个人的感觉,这个论坛里用过这个类的不多
我用过这个类,但是并没有自己继承IODevice
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线rgbfkhkpyu

只看该作者 3楼 发表于: 2013-08-08
回 2楼(roywillow) 的帖子
额……难怪没人理我啊!
离线彩阳

只看该作者 4楼 发表于: 2013-08-08
在memcpy之前你memset()了吗?任何char data[]使用前要初始化为0的。
上海Qt开发联盟,热忱地欢迎你的加入!
离线rgbfkhkpyu

只看该作者 5楼 发表于: 2013-08-08
回 4楼(彩阳) 的帖子
有做这步操作哦,但是为何我没有数据的时候stop程序会死掉嘞?就像是进了死循环一样,必须我来强制退出!
离线彩阳

只看该作者 6楼 发表于: 2013-08-08
可能只是一个Unhandled Exception,调用的时候它假定是data中必须有值的。
在播放的时候还是自己判断一下吧。
上海Qt开发联盟,热忱地欢迎你的加入!
离线rgbfkhkpyu

只看该作者 7楼 发表于: 2013-08-15
有没有对QAudioOutput这个类比较熟悉的大虾啊?跪求指导!
离线rgbfkhkpyu

只看该作者 8楼 发表于: 2013-08-17
冒似找到问题了,应该是QAudioOutput播放音频文件的时候,是不是要加个什么文件头的啊?假设我要播放的文件是没有任何格式的。
m_audioListenFile->setFileName("audioTest");
m_audioOutput->start(m_audioListenFile);
离线rgbfkhkpyu

只看该作者 9楼 发表于: 2013-08-19
问题总算是解决了,根本就没有什么头不头的,只是一个参数的设置。

    QAudioFormat format;
    format.setSampleRate(8000);
    format.setChannels(1);
    format.setSampleSize(16);
    format.setCodec("audio/pcm");
    format.setByteOrder(QAudioFormat::LittleEndian);
    format.setSampleType(QAudioFormat::SignedInt);

我之前用的是BigEndian
离线foxgod

只看该作者 10楼 发表于: 2019-12-04
回 rgbfkhkpyu 的帖子
rgbfkhkpyu:问题总算是解决了,根本就没有什么头不头的,只是一个参数的设置。
    QAudioFormat format;
    format.setSampleRate(8000);
    format.setChannels(1);
....... (2013-08-19 10:03) 

你这个完整的播放代码可以上传下吗,我播放的时候,直接一晃而过一样,什么都没有,我的pcm是从百度下载的,你的呢
快速回复
限100 字节
 
上一个 下一个