【发布时间】:2016-01-15 15:15:12
【问题描述】:
这是我在课堂上的代码
public FRAME()
{
MFileClass media= new MFileClass();
media.FileNameSet(@"E:\TEST VIDEOS\o.mpg", "");
media.FilePlayStart();
media.OnFrame += M_objFile_OnFrame;
}
public static void M_objFile_OnFrame(string bsChannelID, object pMFrame)
{
Console.WriteLine("Trigged");
}
这是我的服务代码
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
FRAME frm = new FRAME();
base.OnStart(args);
}
protected override void OnStop()
{
base.OnStop();
}
M_objFile_OnFrame 函数不起作用。 我想我需要调用这个函数,但不确定如何调用服务
【问题讨论】:
-
什么是
MFileClass?您认为 Windows 服务在没有桌面的情况下如何播放视频? -
它是我们SDK的一个对象。它渲染到输出设备卡。它不需要接口什么的
-
你不应该设置
OnFrame回调在开始视频之前 - 否则你可能会错过前几帧......真的很难回答你的实际情况不过问题是,因为我们对 MFileClass 的作用一无所知。此代码在交互运行时是否有效?如果是这样,那是控制台应用程序,还是 WinForms,还是什么?您确定您的服务实际上正在运行吗 - 您似乎没有任何登录来验证它是否正在运行... -
此代码在 WinForm 应用程序中正常工作,但在 Windows 服务应用程序中不会触发 onFrame 事件。
-
你怎么知道onFrame没有被触发。它所做的只是写入控制台(在 Windows 服务中,您将看不到控制台!)。我认为您需要在文件中添加一些适当的日志记录(例如使用
log4net或类似的),然后重试...
标签: c# windows-services