我有一个较长的 wav 文件,我想在其中播放较小的部分。我将 startTime 和 endTime 存储为 qint64 并已经加载了音频文件:
player = new QMediaPlayer;
connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(slotTick(qint64)));
player->setNotifyInterval(10);
player->setMedia(QUrl::fromLocalFile(mediasource));
...
player->setPosition(startTime);
player->play();
我使用 positionChanged 信号观察位置,并使用以下插槽,在达到所需部分的结尾时停止播放:
void PlayerWidget::slotTick(qint64 time){
if(endTime >= 0 && time >= endTime){
if(player->state() == QMediaPlayer::PlayingState){
player->stop();
}
}
不幸的是,程序在播放器停止后不久就崩溃了。可能是什么原因