• 15181阅读
  • 21回复

请问怎么用Qte给mplayer做一个嵌入式版本的GUI? [复制链接]

上一主题 下一主题
离线gault
 

只看楼主 倒序阅读 楼主  发表于: 2006-05-21
在网上找到一个Qxmp的东西,用qt4写的,原来以为用qtopia core 4(qte4)的库交叉编译一下就能在板子上运行了,结果编译通不过。仔细研究了之后发现用了QX11EmbedWidget这个类,用来把mplayer的播放窗口嵌入到用qt写的GUI中的,要想把一个程序的窗口嵌入到qt程序中,必须取得一个winid,而这个winid就是X11给分配的吧?这样的话, 是不是就没有办法用QT做嵌入式的mplayer 的GUI了?或者说,还有没有其他办法把另一个程序的窗口嵌入到qte的程序当中。
[ 此贴被XChinux在2006-05-21 09:25重新编辑 ]
离线fayfayho
只看该作者 1楼 发表于: 2006-05-22
可以把这个 Qxmp 共享下吗?
loving u
离线shiroki

只看该作者 2楼 发表于: 2006-05-22
问楼主 你的mplayer已经port好了? 能用了吗?


Qxmp
http://www.kde-apps.org/content/show.php?content=37957
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线gault

只看该作者 3楼 发表于: 2006-05-23
引用第2楼shiroki2006-05-22 17:15发表的“”:
问楼主 你的mplayer已经port好了? 能用了吗?
Qxmp
http://www.kde-apps.org/content/show.php?content=37957


Mplayer已经移植到开发板上了,板子是Hyper255的,在板子上能够播放音频视 频(所支持的格式),但是播放视频的时候有些不流畅,音频视 频不太同步,现在有个师兄的毕业论文 就是研究Mplayer在hyper255板子上的优化,而我现在的一个课程项目是要在板子上做一个类似于PMP的东西,所以我想能否把Mplayer移植上去,现在Mplayer是移植上去了,音视 频不同步师兄也在研究,我现在当务之急是要做一个漂亮的GUI,请问有什么办法吗能做吗?要不然在板子上根本没法控制(板子上有触摸 屏),必须要借助宿 主机来控制。谢谢!
离线shiroki

只看该作者 4楼 发表于: 2006-05-23
mplayer我也算略有了解。 你说的控制应该可以实现, 但是把mplayer的窗口嵌入到qte的窗口这个没想出来, 我觉得够呛。
还是那个建议, 关于控制方面应该看mplayer里的gui目录的代码,gmplayer是完全嵌在mplayer代码里面去控制的;另外我记得有一个kmplayer的项目,不知道现在还有没有人维护了, 它用的是另一种实现的思路。有可能和qxmp差不多吧。

你的mplayer用什么驱动播放? 是直接fb的视频驱动吗? 显示出来是全屏的?
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线gault

只看该作者 5楼 发表于: 2006-05-23
应该不是用的directfb,我播放的时候没有加任何参数,就是mplayer filename,播放出来全屏,
PS:我的板子上有个自带的tinyx。
tinyx跟x11有什么区别啊?是不是也是个X11,只是是tiny的,那我可不可以把Qt/X11交叉编译成arm的,然后再交叉编译Qxmp。这样能在板子上跑起来吗?
离线sonscreen
只看该作者 6楼 发表于: 2006-05-23
 gault
1.对于你的问题,我想知道你是想用QT的界面里把它打开还是想想用QT给它加个界面,如果是前者,用多线程或者把整个程序封装成类,就可以解决,后者的话,那你要通过XWINDOWS得到它的窗口指针,加到QT里
2.我想问下你,你是怎么移植QT4的程序的,因为我现在编了一个动态仿真程序,想把它移植到ARM里,QT4并没有EMBEDED版本,我想请教如何移植,谢谢!
离线gault

只看该作者 7楼 发表于: 2006-05-23
Re: gault
引用第6楼sonscreen2006-05-23 21:20发表的“ gault”:
1.对于你的问题,我想知道你是想用QT的界面里把它打开还是想想用QT给它加个界面,如果是前者,用多线程或者把整个程序封装成类,就可以解决,后者的话,那你要通过XWINDOWS得到它的窗口指针,加到QT里
2.我想问下你,你是怎么移植QT4的程序的,因为我现在编了一个动态仿真程序,想把它移植到ARM里,QT4并没有EMBEDED版本,我想请教如何移植,谢谢!


1。后者。
2。Qt4的embedded版本---Qtopia Core 4
离线shiroki

只看该作者 8楼 发表于: 2006-05-24
tiny X是X11的精简版, 具体qt能不能直接port过去我也不太清楚,得试试才知道。 估计不会特顺利。
我觉得各种方法在理论上都是可以实现的, 但技术上没有简单的方法。
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线skyling2001
只看该作者 9楼 发表于: 2006-05-24
sonscreen 你好!

如果想用QT的界面里把mplayer打开,能具体说一下怎么做吗?是不是要在mplayer源码里开发,然后和qt一起编译?谢谢!

这么好的帖子,一定要顶!
离线laoluo
只看该作者 10楼 发表于: 2006-05-24
请问把mplayer移植到ARM上,只需要交叉编译吗???????
还是要对mplayer的源代码进行修改??
离线gault

只看该作者 11楼 发表于: 2006-05-26
引用第10楼laoluo2006-05-24 20:35发表的“”:
请问把mplayer移植到ARM上,只需要交叉编译吗???????
还是要对mplayer的源代码进行修改??


对。
离线shiroki

只看该作者 12楼 发表于: 2006-05-26
如果你把你的代码share给我我可以考虑帮你弄ui, 嘿嘿嘿...(别相信我啊, 可能我也没时间弄..)
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线sonscreen
只看该作者 13楼 发表于: 2006-05-26
skyling2001你好
具体的做法其实比较简单,你可以把mplayer当做线程处理,在QT的界面里触发这个线程,并记录此线程的ID号,在不需要的时候结束它.
离线sonscreen
只看该作者 14楼 发表于: 2006-05-26
gault
对于QT embeded的版本我下不下来,你能否给我传一个,我的EMAIL sonscreen@tom.com,不盛感谢!
离线gault

只看该作者 15楼 发表于: 2006-05-27
qtopia core 4.1.2源码包有50M,邮件恐怕传不了。
离线sonscreen
只看该作者 16楼 发表于: 2006-05-28
gault 你好
 先谢谢你了,关于那个,我自己想办法好了.
你的QQ能不能告诉我,我想在程序移植方面还想和你多多交流,在论坛上说还是比较麻烦的.
离线leg

只看该作者 17楼 发表于: 2006-05-29
我们的一个学习小组也正在做类似的事情
mplayer已经移植成功
因为没有找到 RealNetworks公司的R3040解码器族for arm的版本
所以在arm平台上还不能播放real video 9格式的rm文件

你移植的mplayer可以播放rm吗?
是怎么做到的?
还有啊,wmv(9)的文件只能解码音频,没有图像
wmv(7,8)的播放没有问题
这也是因为解码器找不到的问题,有解决办法吗?

多多交流~~
离线leg

只看该作者 18楼 发表于: 2006-05-30
今天用QT3.3写了个测试程序,给mplayer加了个GUI
没有问题~

本来打算完全用QT来重写/mplayer/gui下的使用gtk的源码
为此还读了它的代码
一读代码发现它的/mplayer/input下的部分提供在运行时解读标准输入指令的功能
可以参看input.h input.c中定义的命令结构和读入命令的各种函数

回头一想,mplayer的贡献者们真牛X,高瞻远嘱啊~
等过几天这个工作完全结束之后,我会把经验写出来,共享一下
不管别人用不用的到,希望大家都能贡献自己的知识给社区
离线azhui_992431
只看该作者 19楼 发表于: 2006-06-07
leg兄在吗
能否把你给mplayer加上gui的测试代码发一份给我,我本想用gtk+/directfb,且gtk+,directfb等arm版本都移植好了.并且我的配置在修改configure (把gui检测处的关于x11检测去掉)后也能通过
./configure --host-cc=gcc --cc=arm-linux-gcc --target=arm-armv4l-linux --enable-static --prefix=/tmp/mplayer --disable-win32 --disable-dvdread --enable-fbdev --disable-mencoder --disable-live --enable-png --enable-gui 2>&1 | tee logfile

但是在make的时候出现了问题
Gui/wm/ws.h:10:22: X11/Xlib.h: No such file or directory
Gui/wm/ws.h:11:23: X11/Xutil.h: No such file or directory
Gui/wm/ws.h:12:24: X11/keysym.h: No such file or directory
Gui/wm/ws.h:13:23: X11/Xatom.h: No such file or directory
Gui/wm/ws.h:14:33: X11/extensions/XShm.h: No such file or directory
In file included from Gui/mplayer/widgets.h:15,
          from mp_msg.c:19:
......
......
In file included from mp_msg.c:19:
Gui/mplayer/widgets.h:41: error: parse error before "guiIcon"
Gui/mplayer/widgets.h:41: warning: data definition has no type or storage class
Gui/mplayer/widgets.h:42: error: parse error before "guiIconMask"
Gui/mplayer/widgets.h:42: warning: data definition has no type or storage class
make: *** [mp_msg.o] Error 1

请问下,--enable-gui必须要有x11支持吗,
我的gtk已经是基于directfb的了,为什么呢?
离线uniquezhu
只看该作者 20楼 发表于: 2006-09-19
to: leg
RealNetworks的rm和rmvb解码器如果不商用可以通过申请免费获得的,只需要签一份License。

前一段时间做了在qtopia上的移植,做成了MeidaPlayer的插件,同步基本上没问题了,就是解码速度不行,丢帧严重,在qtopia外跑的时候效果还行。
离线yurenjimi

只看该作者 21楼 发表于: 2011-10-20
回 2楼(leg) 的帖子
嗯,5年过去了,相信很多人都还是想知道leg 如何用QT 重写mplayer/gui 下使用gtk的源码的
经验啊,等待……
hello world!!
快速回复
限100 字节
 
上一个 下一个