示例#1
0
void
AudioOutput::onVlcEvent( const libvlc_event_t* event )
{
    switch ( event->type )
    {
        case libvlc_MediaPlayerTimeChanged:
            setCurrentTime( event->u.media_player_time_changed.new_time );
            break;
        case libvlc_MediaPlayerPositionChanged:
            setCurrentPosition( event->u.media_player_position_changed.new_position );
            break;
        case libvlc_MediaPlayerSeekableChanged:
         //   tDebug() << Q_FUNC_INFO << " : seekable changed : " << event->u.media_player_seekable_changed.new_seekable;
            break;
        case libvlc_MediaDurationChanged:
            setTotalTime( event->u.media_duration_changed.new_duration );
            break;
        case libvlc_MediaPlayerLengthChanged:
        //    tDebug() << Q_FUNC_INFO << " : length changed : " << event->u.media_player_length_changed.new_length;
            break;
        case libvlc_MediaPlayerPlaying:
            setState( Playing );
            break;
        case libvlc_MediaPlayerPaused:
            setState( Paused );
            break;
        case libvlc_MediaPlayerEndReached:
            setState( Stopped );
            break;
        case libvlc_MediaPlayerEncounteredError:
            tDebug() << Q_FUNC_INFO << "LibVLC error: MediaPlayerEncounteredError. Stopping";
            // Don't call stop() here - it will deadlock libvlc
            setState( Error );
            break;
        case libvlc_MediaPlayerNothingSpecial:
        case libvlc_MediaPlayerOpening:
        case libvlc_MediaPlayerBuffering:
        case libvlc_MediaPlayerStopped:
        case libvlc_MediaPlayerVout:
        case libvlc_MediaPlayerMediaChanged:
        case libvlc_MediaPlayerForward:
        case libvlc_MediaPlayerBackward:
        case libvlc_MediaPlayerPausableChanged:
        case libvlc_MediaPlayerTitleChanged:
        case libvlc_MediaPlayerSnapshotTaken:
        default:
            break;
    }
}
//start id="get"
void PhononItem::fetchMetaData() {
    delete m_metaMedia;

    m_mediaSource = Phonon::MediaSource(fileName());
    if (m_mediaSource.type() == Phonon::MediaSource::Invalid) {
        qDebug() << "Invalid Media Source." << fileName();
        emit fetched(false);

    }
    m_metaMedia = new Phonon::MediaObject(this);


    QObject::connect(m_metaMedia, SIGNAL(stateChanged(Phonon::State,Phonon::State)),
                     this, SLOT(metaStateChanged(Phonon::State, Phonon::State)), Qt::QueuedConnection);
    QObject::connect(m_metaMedia, SIGNAL(totalTimeChanged(qint64)),
                     this, SLOT(setTotalTime(qint64)), Qt::QueuedConnection);

    m_metaMedia->setCurrentSource(m_mediaSource);

}