void AbstractAudioSource::onPipelineBusmessage (const QGst::MessagePtr& message) { switch (message->type()) { case QGst::MessageError: { QGst::ErrorMessagePtr errMsg = message.staticCast<QGst::ErrorMessage>(); qDebug() << "[AbstractContentSource::onPipelineBusmessage()] Error message:" << errMsg->debugMessage(); } break; case QGst::MessageStateChanged: { QGst::StateChangedMessagePtr stateMsg = message.staticCast<QGst::StateChangedMessage>(); QString oldState = getStateText (stateMsg->oldState()); QString newState = getStateText (stateMsg->newState()); qDebug() << "[AbstractContentSource::onPipelineBusmessage()] State changed from" << oldState << "to" << newState; } break; case QGst::MessageAsyncDone: qDebug() << "[AbstractContentSource::onPipelineBusmessage()] Asynchronous completion invoked."; break; case QGst::MessageAsyncStart: qDebug() << "[AbstractContentSource::onPipelineBusmessage()] Asynchronous start invoked."; break; case QGst::MessageStreamStatus: { QGst::StreamStatusMessagePtr streamStatusMessage = message.staticCast<QGst::StreamStatusMessage>(); qWarning() << "[AbstractContentSource::onPipelineBusmessage()] " << streamStatusMessage->streamStatusObject().toString(); } break; case QGst::MessageElement: { QGst::ElementMessagePtr elementMessage = message.staticCast<QGst::ElementMessage>(); //qDebug() << "[AbstractContentSource::onPipelineBusmessage()] Element message: " << elementMessage->internalStructure()->toString(); } break; case QGst::MessageClockProvide: case QGst::MessageClockLost: { } break; default: qWarning() << "[AbstractContentSource::onPipelineBusmessage()] Unexpected message:" << message->typeName(); break; } }
void Player::handlePipelineStateChange(const QGst::StateChangedMessagePtr & scm) { switch (scm->newState()) { case QGst::StatePlaying: //start the timer when the pipeline starts playing m_positionTimer.start(100); break; case QGst::StatePaused: //stop the timer when the pipeline pauses if(scm->oldState() == QGst::StatePlaying) { m_positionTimer.stop(); } break; default: break; } Q_EMIT stateChanged(); }