报错:C:\Program Files (x86)\sogoupinyin\Components\程序异常结束
看了很多博客,解答都是野指针内存报错。于是我一个个都检查了,没有指针的错误。最后边注释边运行检查,终于在进度条那里发现了出错语句,如下:
ui->progressSlider->setValue(player->position()*1000/player->duration());
报错的原因是,QMediaplayer的duration()获取的音视频时间长度为0,发现错误的时候我真是震惊了(因为之前是可以运行的,改了一部分代码之后这语句就错了TAT)
解决方法:
连接durationChanged()信号以接收状态通知。写个槽函数,在槽函数里面调用duration就可以接收到正确的时间。
QObject::connect(player,SIGNAL(durationChanged(qint64)),this,
SLOT(getduration(qint64)));
void mediaplay::getduration(qint64 playtime)
{
playtime = player->duration();
}