问题描述
这里是android新手开发人员的警告...所以我的术语可能有点过错了;)
我有一个为Android编写的小应用程序,它使用LibVLC(最新的3.0.XX)。
每次初始化视频播放器时,都会得到以下信息:
10-22 04:20:03.365 22293 22601 E VLC : [d27d4630/5849] libvlc window: request 1 not implemented
10-22 04:20:03.366 22293 22601 E VLC : [d2855430/5849] libvlc vout display: can't get Subtitles Surface
10-22 04:20:03.371 22293 22601 E VLC : [d27d4630/5849] libvlc window: request 0 not implemented
10-22 04:20:03.371 22293 22601 E VLC : [d27d4630/5849] libvlc window: request 0 not implemented
10-22 04:20:03.371 22293 22601 E VLC : [d27d4630/5849] libvlc window: request 1 not implemented
通过初始化,我的意思是通过setMedia(...)
加载新媒体。尽管它可能在play()
函数中发生。
这些接缝相当无害,因为一切正常,但是如果可能的话,我想禁用任何libvlc尝试执行的操作,从而导致它们弹出。
A)窗口请求事件似乎与android不支持的鼠标相关事件有关,因此它们失败了。我尝试将--no-mouse
传递为libvlc的选项,但是没有骰子。它没有帮助。
B)vout显示似乎与应该显示字幕的位置有关。我不使用它们,也永远不会使用它们,因此我尝试将一些不同的选项传递给我的libvlc init来一起禁用字幕,但是这些都无济于事。
有什么主意如何清理libvlc / mediaplayer / vout / media初始化文件,以免污染我的日志?
谢谢!
解决方法
A)窗口请求事件似乎与android不支持的鼠标相关事件有关,因此它们失败了。我尝试将--no-mouse作为选项传递给libvlc,但是没有骰子。
除了禁用日志外,恐怕您无法隐藏这些日志。
static int Control(vout_window_t *wnd,int cmd,va_list ap)
{
(void) ap;
msg_Err (wnd,"request %d not implemented",cmd);
return VLC_EGENERIC;
}
B)vout显示似乎与应该显示字幕的位置有关。我不使用它们,也永远不会使用它们,因此我尝试将一些不同的选项传递给我的libvlc init来一起禁用字幕,但是这些都无济于事。
您没有分享如何实现Surface / Awindow / VideoViews,但是即使您不打算使用它们,也可以为Subs提供一个Surface。那会使日志消失。
if (AndroidWindow_ConnectSurface(sys,p_window) != 0)
{
if (id == AWindow_Video)
msg_Err(vd,"can't get Video Surface");
else if (id == AWindow_Subtitles)
msg_Err(vd,"can't get Subtitles Surface");
goto error;
}