示例#1
0
void MediaObject::readyContent()
{
    d->tickTimer->stop();
    if (d->content)
        delete d->content;

    if (d->sources.empty()) {
        emit finished();
        return;
    }

    MediaSource const& h = d->sources.head();

    if (h.type() == MediaSource::Invalid) {
        d->state = d->requiredState = QtopiaMedia::Stopped;
        d->sources.dequeue();
        emit finished();
        return;
    }

    d->content = new QMediaContent(h.url(), "Media", this);
    connect(d->content, SIGNAL(mediaError(QString)), SLOT(mediaError(QString)));
    connect(d->content, SIGNAL(controlAvailable(QString)), SLOT(controlAvailable(QString)));
    connect(d->content, SIGNAL(controlUnavailable(QString)), SLOT(controlUnavailable(QString)));

    d->valid = false;

    emit currentSourceChanged(h);
    emit stateChanged(Phonon::LoadingState, qtopiaStateToPhononState(d->state));
}
示例#2
0
void DataMediaWidget::loadUri()
{
    if (FUriIndex < FMedia.uris.count())
    {
        const IDataMediaURI &uri = FMedia.uris.at(FUriIndex);
        if (FDataForms->isSupportedUri(uri))
        {
            setToolTip(uri.url.toString());
            setText(tr("Loading data..."));
            FDataForms->loadUrl(uri.url);
        }
        else
        {
            FUriIndex++;
            loadUri();
        }
    }
    else
    {
        disconnect(FDataForms->instance());
        setText(FLastError.errorMessage());
        emit mediaError(FLastError);
    }
}