关于vlc 播放器全屏实现的问题

fushuming 2011-04-02 03:46:40
<object classid="clsid:9be31822-fdad-461b-ad51-be1d1c159921"
width="640"
height="480"
id="vlc"
events="true">
<param name="mrl" value="rtsp://10.0.65.21/1.mp4" />
<param name="showdisplay" value="true" />
<param name="autoloop" value="false" />
<param name="autoplay" value="false" />
<param name="volume" value="50" />
<param name="starttime" value="0" />
<embed pluginspage="http://www.videolan.org"
type="application/x-vlc-plugin"
version="videolan.vlcplugin.2"
width="640"
height="480"
name="vlc">
</embed>
</object>


<input type=button value="全屏" onclick='fullscreen();'>

点击全屏的时候,为什么不切换到全屏呢,我通过alert(document.getElementById("vlc").video.fullscreen),显示是true的,为何不全屏呢,请高手指教
...全文
2020 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
百变幽灵 2013-01-11
  • 打赏
  • 举报
回复
VLC源码里的全屏功能也是在外面通过QT来实现的,代码如下: void MainInterface::setVideoFullScreen( bool fs ) { b_videoFullScreen = fs; if( fs ) { int numscreen = var_InheritInteger( p_intf, "qt-fullscreen-screennumber" ); /* if user hasn't defined screennumber, or screennumber that is bigger * than current number of screens, take screennumber where current interface * is */ if( numscreen == -1 || numscreen > QApplication::desktop()->numScreens() ) numscreen = QApplication::desktop()->screenNumber( p_intf->p_sys->p_mi ); QRect screenres = QApplication::desktop()->screenGeometry( numscreen ); /* To be sure window is on proper-screen in xinerama */ if( !screenres.contains( pos() ) ) { msg_Dbg( p_intf, "Moving video to correct screen"); move( QPoint( screenres.x(), screenres.y() ) ); } /* */ if( playlistWidget != NULL && playlistWidget->artContainer->currentWidget() == videoWidget ) { showTab( videoWidget ); } /* */ setMinimalView( true ); setInterfaceFullScreen( true ); } else { /* TODO do we want to restore screen and position ? (when * qt-fullscreen-screennumber is forced) */ setMinimalView( b_minimalView ); setInterfaceFullScreen( b_interfaceFullScreen ); } videoWidget->sync(); } void MainInterface::setInterfaceFullScreen( bool fs ) { if( fs ) setWindowState( windowState() | Qt::WindowFullScreen ); else setWindowState( windowState() & ~Qt::WindowFullScreen ); }
百变幽灵 2013-01-11
  • 打赏
  • 举报
回复
同志们,经过我深入的调查发现,如果要用libvlc来实现全屏的话,旧的版本是可以的,2.0以后的版本都已经没有这个功能了,得手动的在界面上设置,比如设置显示句柄为全屏等。具体参阅VLC2.O.2源码: Projects\vlc-2.0.2\include\vlc_vout_window.h enum { VOUT_WINDOW_SET_STATE, /* unsigned state */ VOUT_WINDOW_SET_SIZE, /* unsigned i_width, unsigned i_height */ VOUT_WINDOW_SET_FULLSCREEN, /* int b_fullscreen */ }; Projects\vlc-2.0.2\modules\video_output\drawable.c static int Control (vout_window_t *wnd, int query, va_list ap) { VLC_UNUSED( ap ); switch (query) { case VOUT_WINDOW_SET_SIZE: /* not allowed */ case VOUT_WINDOW_SET_STATE: /* not allowed either, would be ugly */ return VLC_EGENERIC; default: msg_Warn (wnd, "unsupported control query %d", query); return VLC_EGENERIC; } }
foreverlovehon 2011-11-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wxr0323 的回复:]
ActiveX
libvlc_exception_t excp;
libvlc_instance_t *inst;
int item;
char *myarg0 = "-I";
char *myarg1 = "wxwin";
char *myarg2 = "-L";
char *myarg3 = ":sout=#duplicate{dst=std{access=rtp,mux=ts,……
[/Quote]
您好 想请教您关于VLC ActiveX控件的问题,能加我QQ么?1816861766,谢谢~~
killerpan 2011-05-22
  • 打赏
  • 举报
回复
请问楼主,现在问题解决了吗,我也遇到这个问题
fushuming 2011-04-06
  • 打赏
  • 举报
回复
楼上说的是在windows下面的吧,我需要的是在asp.net环境下实现全屏
子夜__ 2011-04-02
  • 打赏
  • 举报
回复
ActiveX
libvlc_exception_t excp;
libvlc_instance_t *inst;
int item;
char *myarg0 = "-I";
char *myarg1 = "wxwin";
char *myarg2 = "-L";
char *myarg3 = ":sout=#duplicate{dst=std{access=rtp,mux=ts,dst=**.**.**.**}}";

char *myargs[5] = {myarg0, myarg1, myarg2, myarg3,NULL};
IServiceProvider* locISP = NULL;
IWebBrowser2* locBrowser = NULL;
long lWnd;
HRESULT locHR = GetClientSite()->QueryInterface(IID_IServiceProvider, (void **)&locISP);
if (locHR == S_OK) {
locHR = locISP->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, (void **)&locBrowser);
if (locHR == S_OK) {
locBrowser->get_HWND(&lWnd);

}
locISP->Release();
}
libvlc_exception_init (&excp);
inst = libvlc_new (4, myargs, &excp);
quit_on_exception (&excp);
item = libvlc_playlist_add (inst, cstrOut, NULL, &excp);
quit_on_exception (&excp);
libvlc_playlist_play (inst, item, 0, NULL, &excp);
quit_on_exception (&excp);
libvlc_video_set_size(inst,800,600,&excp);
libvlc_video_set_parent(inst,(libvlc_drawable_t)lWnd,&excp);
fushuming 2011-04-02
  • 打赏
  • 举报
回复
有做过vlc的朋友吗

62,241

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧