QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: sejishikong

sopcast前端继续更新(p2p的网络电视)

[复制链接]
 楼主| 发表于 2005-11-26 16:48:27 | 显示全部楼层
换个频道试试,只要能弹出播放器,并且播放器不报错,其它的事情我管不了的。
回复

使用道具 举报

发表于 2005-11-26 17:39:58 | 显示全部楼层
[quote:f2d7989c05="sejishikong"]
对了,yunfan,你知道在QT下怎么取得这个页面的内容么?http://www.sopcast.org/channel
[/quote]

你参考一下下面的思路, 我刚才试了,可以下到
[code:1]
#include <qhttp.h>
#include <qfile.h>

class TestHttp : QObject
{
Q_OBJECT
public:
      TestHttp();
      ~TestHttp();
      void go();
private:
      QHttp *http;
      QFile *tmpFile;
public slots:
      void slotDone(bool error);
};
[/code:1]

[code:1]
#include "testhttp.h"

TestHttp::TestHttp() : QObject()
{
        http = new QHttp();
        connect(http, SIGNAL(done(bool)), SLOT(slotDone(bool)));
}

TestHttp::~TestHttp()
{
        if(http) delete http;
}

void TestHttp::go()
{
        tmpFile = new QFile("tmp.php");
        if(!tmpFile->open(IO_WriteOnly)){
                printf("cannot create the file\n");
                return;
        }
        http->setHost("www.sopcast.org");
        http->get("/channel/index.php", tmpFile);
}

void TestHttp::slotDone(bool error)
{
        tmpFile->close();
        delete tmpFile;
        if(error) printf("load page error!\n");
}

[/code:1]

[quote:f2d7989c05="sejishikong"]
另外,能不能给一个动态生成菜单并且点击菜单进行播放的思路。[/quote]

我看你好像搞成动态的了么。
你在主程序里放个 QPopupMenu 的指针, 然后, 在 TrayIcon 里只要set这个menu, 你一旦下载到了新的列表, 更新主程序的全局的menu好了。
QPopupMenu *menu;
然后 connect  activate(int) 这个信号,
[code:1]
QObject::connect(menu, SIGNAL(activated(int)), this,  SLOT(slotMenuActivated(int)));
[/code:1]

每次更新的时候, 大概这么搞一下吧
menu->clear();
按播放列表list的次序一个一个加到 menu 里,
        int id=0;
        for(iter=palyList.begin(); iter!=playList.end(); ++iter){
                menu->insertItem(*iter, id++);
        }

在slotMenuActivated 里, 按index找到要放的, 按一般的方法调用就好了。

你看一下, 是不是能帮上忙。
回复

使用道具 举报

发表于 2005-11-26 18:16:07 | 显示全部楼层
我的出错了。。。。

QFile::getch: File not open
QFile::atEnd: File is not open
QFile::getch: File not open
QFile::atEnd: File is not open
。。。。。

死循环?
回复

使用道具 举报

 楼主| 发表于 2005-11-26 20:09:38 | 显示全部楼层
[quote:75b3378d9f="pslist"]我的出错了。。。。

QFile::getch: File not open
QFile::atEnd: File is not open
QFile::getch: File not open
QFile::atEnd: File is not open
。。。。。

死循环?[/quote]
呵呵,你看看/tmp里有没有一个$LOGNAME-channellist文件,或者可以在root用户下试试。
回复

使用道具 举报

 楼主| 发表于 2005-11-26 20:13:20 | 显示全部楼层
[quote:b11edfd8fd="yunfan"][quote:b11edfd8fd="sejishikong"]
对了,yunfan,你知道在QT下怎么取得这个页面的内容么?http://www.sopcast.org/channel
[/quote]

你参考一下下面的思路, 我刚才试了,可以下到
[code:1]
#include <qhttp.h>
#include <qfile.h>

class TestHttp : QObject
{
Q_OBJECT
public:
      TestHttp();
      ~TestHttp();
      void go();
private:
      QHttp *http;
      QFile *tmpFile;
public slots:
      void slotDone(bool error);
};
[/code:1]

[code:1]
#include "testhttp.h"

TestHttp::TestHttp() : QObject()
{
        http = new QHttp();
        connect(http, SIGNAL(done(bool)), SLOT(slotDone(bool)));
}

TestHttp::~TestHttp()
{
        if(http) delete http;
}

void TestHttp::go()
{
        tmpFile = new QFile("tmp.php");
        if(!tmpFile->open(IO_WriteOnly)){
                printf("cannot create the file\n");
                return;
        }
        http->setHost("www.sopcast.org");
        http->get("/channel/index.php", tmpFile);
}

void TestHttp::slotDone(bool error)
{
        tmpFile->close();
        delete tmpFile;
        if(error) printf("load page error!\n");
}

[/code:1]

[quote:b11edfd8fd="sejishikong"]
另外,能不能给一个动态生成菜单并且点击菜单进行播放的思路。[/quote]

我看你好像搞成动态的了么。
你在主程序里放个 QPopupMenu 的指针, 然后, 在 TrayIcon 里只要set这个menu, 你一旦下载到了新的列表, 更新主程序的全局的menu好了。
QPopupMenu *menu;
然后 connect  activate(int) 这个信号,
[code:1]
QObject::connect(menu, SIGNAL(activated(int)), this,  SLOT(slotMenuActivated(int)));
[/code:1]

每次更新的时候, 大概这么搞一下吧
menu->clear();
按播放列表list的次序一个一个加到 menu 里,
        int id=0;
        for(iter=palyList.begin(); iter!=playList.end(); ++iter){
                menu->insertItem(*iter, id++);
        }

在slotMenuActivated 里, 按index找到要放的, 按一般的方法调用就好了。

你看一下, 是不是能帮上忙。[/quote]

非常感谢,原来是index.php,试了好几个都不对:D

嗯,其实动态菜单的思路我也是这么做的,但是有个问题,这样的话,停止、退出什么的一点也调用这个SLOT了,我不知道是怎么回事。
回复

使用道具 举报

发表于 2005-11-26 20:33:42 | 显示全部楼层


停止, 退出, 你放进去的时候, 记住他们的index就好, 进slot的时候判断一下就好了。
回复

使用道具 举报

发表于 2005-11-26 20:44:11 | 显示全部楼层
有yunfan大虾相助,呵呵。好弄多了
回复

使用道具 举报

 楼主| 发表于 2005-11-26 21:02:25 | 显示全部楼层
[quote:1c40faed00="yunfan"]

停止, 退出, 你放进去的时候, 记住他们的index就好, 进slot的时候判断一下就好了。[/quote]

我现在是先放电台列表,所以他们的index是不确定的,有什么办法能判断QPopupMenu的总Item数么?
或者我考虑下先放他们,不过那样的话,不太好看。
回复

使用道具 举报

发表于 2005-11-27 00:04:44 | 显示全部楼层
有你说的 $LOGNAME-channellist 这个文件

然后该怎么办?
回复

使用道具 举报

发表于 2005-11-27 07:53:32 | 显示全部楼层
[quote:ca136ba891="sejishikong"]
我现在是先放电台列表,所以他们的index是不确定的,有什么办法能判断QPopupMenu的总Item数么?
或者我考虑下先放他们,不过那样的话,不太好看。[/quote]

count() 可以得到 item数。
回复

使用道具 举报

 楼主| 发表于 2005-11-27 20:34:27 | 显示全部楼层
[quote:d9c162773e="yunfan"][quote:d9c162773e="sejishikong"]
我现在是先放电台列表,所以他们的index是不确定的,有什么办法能判断QPopupMenu的总Item数么?
或者我考虑下先放他们,不过那样的话,不太好看。[/quote]

count() 可以得到 item数。[/quote]

嗯,多谢,不过昨天睡觉的时候忽然想起来,其实可以把频道列表做出子菜单的,就没有这个问题了。 :D
回复

使用道具 举报

 楼主| 发表于 2005-11-29 21:29:12 | 显示全部楼层
[quote:d9e8dd4d18="yunfan"]
[code:1]
#include <qhttp.h>
#include <qfile.h>

class TestHttp : QObject
{
Q_OBJECT
public:
      TestHttp();
      ~TestHttp();
      void go();
private:
      QHttp *http;
      QFile *tmpFile;
public slots:
      void slotDone(bool error);
};
[/code:1]

[code:1]
#include "testhttp.h"

TestHttp::TestHttp() : QObject()
{
        http = new QHttp();
        connect(http, SIGNAL(done(bool)), SLOT(slotDone(bool)));
}

TestHttp::~TestHttp()
{
        if(http) delete http;
}

void TestHttp::go()
{
        tmpFile = new QFile("tmp.php");
        if(!tmpFile->open(IO_WriteOnly)){
                printf("cannot create the file\n");
                return;
        }
        http->setHost("www.sopcast.org");
        http->get("/channel/index.php", tmpFile);
}

void TestHttp::slotDone(bool error)
{
        tmpFile->close();
        delete tmpFile;
        if(error) printf("load page error!\n");
}

[/code:1]
[/quote]

奇怪了,我用这段代码就会出现load page error,下不到任何东西。
回复

使用道具 举报

发表于 2005-11-30 08:15:15 | 显示全部楼层
命令行运行。
这个程序我这里可以正常下载到。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

 楼主| 发表于 2005-11-30 08:29:48 | 显示全部楼层
压缩文件损坏
回复

使用道具 举报

发表于 2005-11-30 08:34:43 | 显示全部楼层
倒, 试试这个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-25 01:45 , Processed in 0.040643 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表