首页| 论坛| 消息

标题:【请问】QSound如何连续播放多个声音?
作者:清晨
日期:2014-05-24 11:48
内容:

QSound *sound1 = new QSound("sound/1.wav", this); //构建对象
QSound *sound2 = new QSound("sound/2.wav", this); //构建对象
sound1->play();
if(sound1->isFinished()==true)
{
sound1->stop();
sound2->play();
}
我想将多个音频文件连在一起播放达到语音播报效果但QSound每次只播报最后一个对象。


#1 [彩阳 05-24 21:26]
简单的当然不行了,不过通过信号和槽的机制你可以试试。QSound没有槽,你可以使用一个定时器来定时查询QSound::isFinished()。
#2 [realfan 05-24 21:51]
sound1->play()是立即返回
#3 回 彩阳 的帖子 [清晨 05-25 21:32]
彩阳:简单的当然不行了,不过通过信号和槽的机制你可以试试。QSound没有槽,你可以使用一个定时器来定时查询QSound::isFinished()。(2014-05-24 21:26)
我定了定时器查询QSound::isFinished()也不行呃他还是只播最后个音频文件。。。
#4 回 realfan 的帖子 [清晨 05-25 21:33]
realfan:sound1->play()是立即返回
(2014-05-24 21:51)
那该怎么办呢。。
#5 [彩阳 05-25 23:17]
编程方法出了问题:
你制作一个数组,连接定时器的信号和槽,然后监听isFinished,我这里给你写伪代码好了:
array = { "1.wav", "2.wav" };
onTimeout( )
{
if ( sound.isFinished( ) )
{
sound.play( array );
}
}

<< 1 2 3 >> (1/3)

回复 发表
主题 版块