public bool StartStreamingPlay(String filePath, String srvIP, UInt32 srvPort) { try { if (Settings.Instance.TvTestExe.Length == 0) { MessageBox.Show("TVTest.exeのパスが設定されていません"); return(false); } UInt32 ctrlID = 0; UInt32 err = cmd.SendNwPlayOpen(filePath, ref ctrlID); if (err == 205) { MessageBox.Show("サーバーに接続できませんでした"); return(false); } else if (err != 1) { MessageBox.Show("まだ録画が開始されていません"); return(false); } if (IsOpenTVTest() == false) { processID = FindTVTestProcess(); if (processID == -1) { Process process; process = System.Diagnostics.Process.Start(Settings.Instance.TvTestExe, Settings.Instance.TvTestCmd); processID = process.Id; System.Threading.Thread.Sleep(Settings.Instance.TvTestOpenWait); } } cmdTvTest.SetPipeSetting("Global\\TvTest_Ctrl_BonConnect_" + processID.ToString(), "\\\\.\\pipe\\TvTest_Ctrl_BonPipe_" + processID.ToString()); cmdTvTest.SetConnectTimeOut(1000); UInt32 ip = 0; Int32 shift = 24; //srvIP = CommonManager.Instance.NW.ConnectedIP; foreach (IPAddress address in Dns.GetHostAddresses(srvIP)) { srvIP = address.ToString(); } foreach (string word in srvIP.Split('.')) { ip |= Convert.ToUInt32(word) << shift; shift -= 8; } TVTestStreamingInfo sendInfo = new TVTestStreamingInfo(); sendInfo.enableMode = 1; sendInfo.ctrlID = ctrlID; sendInfo.serverIP = ip; sendInfo.serverPort = srvPort; if (Settings.Instance.NwTvModeUDP == true) { sendInfo.udpSend = 1; } if (Settings.Instance.NwTvModeTCP == true) { sendInfo.tcpSend = 1; } if (cmdTvTest.SendViewSetStreamingInfo(sendInfo) != 1) { System.Threading.Thread.Sleep(5 * 1000); cmdTvTest.SendViewSetStreamingInfo(sendInfo); } WakeupWindow(processID); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } return(true); }
public bool StartStreamingPlay(String filePath, IPAddress srvIP, UInt32 srvPort) { try { if (Settings.Instance.TvTestExe.Length == 0) { MessageBox.Show("TVTest.exeのパスが設定されていません"); return(false); } UInt32 ctrlID = 0; ErrCode err = cmd.SendNwPlayOpen(filePath, ref ctrlID); if (err == ErrCode.CMD_ERR_CONNECT) { MessageBox.Show("サーバーに接続できませんでした"); return(false); } else if (err != ErrCode.CMD_SUCCESS) { MessageBox.Show("まだ録画が開始されていません"); return(false); } OpenTVTest(Settings.Instance.TvTestOpenWait, "TvTest"); var cmdTvTest = new CtrlCmdUtil(); cmdTvTest.SetPipeSetting("Global\\TvTest_Ctrl_BonConnect_" + process.Id, "\\\\.\\pipe\\TvTest_Ctrl_BonPipe_" + process.Id); cmdTvTest.SetConnectTimeOut(1000); UInt32 ip = 0x7F000001; if (srvIP != null && srvIP.GetAddressBytes().Length == 4) { byte[] oct = srvIP.GetAddressBytes(); ip = (uint)oct[0] << 24 | (uint)oct[1] << 16 | (uint)oct[2] << 8 | oct[3]; } TVTestStreamingInfo sendInfo = new TVTestStreamingInfo(); sendInfo.enableMode = 1; sendInfo.ctrlID = ctrlID; sendInfo.serverIP = ip; sendInfo.serverPort = srvPort; if (Settings.Instance.NwTvModeUDP == true) { sendInfo.udpSend = 1; } if (Settings.Instance.NwTvModeTCP == true) { sendInfo.tcpSend = 1; } for (int i = 0; i < 10 && cmdTvTest.SendViewSetStreamingInfo(sendInfo) != ErrCode.CMD_SUCCESS; i++) { System.Threading.Thread.Sleep(1000); } WakeupWindow(process.MainWindowHandle); } catch (Exception ex) { MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace); } return(true); }