\class AbstractMediaStream2 abstractmediastream2.h Phonon/AbstractMediaStream2
Base class for custom media data streams.
Implement this class to provide a custom data stream to the backend. The class supports both, the
push and the pull model.
Push:
PushStream.PushStream(QObject *parent)
: AbstractMediaStream2(parent), m_timer(new QTimer(this))
{
setStreamSize(getMediaStreamSize());
connect(m_timer, SIGNAL(timeout()), SLOT(moreData()));
m_timer->setInterval(0);
}
void PushStream.moreData()
{
const QByteArray data = getMediaData();
if (data.isEmpty()) {
endOfData();
} else {
writeData(data);
}
}
void PushStream.needData()
{
m_timer->start();
moreData();
}
void PushStream.enoughData()
{
m_timer->stop();
}
Pull:
PullStream.PullStream(QObject *parent)
: AbstractMediaStream2(parent)
{
setStreamSize(getMediaStreamSize());
}
void PullStream.needData()
{
const QByteArray data = getMediaData();
if (data.isEmpty()) {
endOfData();
} else {
writeData(data);
}
}
Author Matthias Kretz
|