本文整理汇总了C++中QUdpSocket::leaveMulticastGroup方法的典型用法代码示例。如果您正苦于以下问题:C++ QUdpSocket::leaveMulticastGroup方法的具体用法?C++ QUdpSocket::leaveMulticastGroup怎么用?C++ QUdpSocket::leaveMulticastGroup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QUdpSocket
的用法示例。
在下文中一共展示了QUdpSocket::leaveMulticastGroup方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadURL
bool CQMedia::loadURL(const QString& url)
{
QString tmp = url;
tmp.remove(0,6);
QString ip = tmp.split(QChar(':'))[0];
int port = tmp.split(QChar(':'))[1].toInt();
QUdpSocket udp;
udp.bind(port,QUdpSocket::ShareAddress);
udp.joinMulticastGroup(QHostAddress(ip));
QEventLoop q;
QTimer::singleShot(1000,&q,SLOT(quit()));
connect(&udp,SIGNAL(readyRead()),&q,SLOT(quit()));
q.exec();
if(udp.pendingDatagramSize() == -1)
{
//qDebug("has no avalid datapkg...");
QTimer::singleShot(3500,this,SLOT(_emitTimeout()));
return false;
}
qDebug("has avalid datapkg...");
udp.leaveMulticastGroup(QHostAddress(ip));
udp.close();
this->url = url;
// SdpsrcParser sdpSrc(url);
// if(!sdpSrc.isValid())
// {
// qDebug()<<"SdpsrcParser invalid!!";
// return false;
// }
// sdpSrc.printf();
GstElement *udpsrc = gst_bin_get_by_name(GST_BIN(pipeline),"udpsrc");
GstCaps *caps = gst_caps_new_simple("application/x-rtp",NULL);
//QString uri = "udp://"+sdpSrc.broadcastIP+":"+QString::number(sdpSrc.v_port);
// QString uri = "udp://"+sdpSrc.broadcastIP+":"+QString::number(sdpSrc.v_port);
// QString uri = "udp://239.255.42.42:1234";
QString uri = url;
g_object_set(G_OBJECT(udpsrc),"uri",uri.toUtf8().data(),"caps",caps,NULL);
gst_object_unref(udpsrc);
return true;
}