Пример #1
0
        //To Set User's count watching Broadcast.
        private void tmrViewerCount_Tick(object sender, EventArgs e)
        {
            try
            {
                tsddlUsrDetails.DropDownItems.Clear();
                broadCastStats = DesktopEncoder.Statistics;
                int ViewersCount = ((IWMEncNetConnectionStats2)broadCastStats.NetConnectionStats).ClientCount;
                WMENC_BROADCAST_PROTOCOL SelProtocol = WMENC_BROADCAST_PROTOCOL.WMENC_PROTOCOL_HTTP;
                switch (ViewersCount)
                {
                case 0: tsUsersCount.Text = "No Users Connected.";
                    break;

                case 1: tsUsersCount.Text = "1 User Connected.";
                    break;

                default:
                    tsUsersCount.Text = ViewersCount.ToString() + "Connected.";
                    break;
                }
                for (int i = 0; i < ViewersCount; i++)
                {
                    tsddlUsrDetails.DropDownItems.Add(((IWMEncNetConnectionStats2)broadCastStats.NetConnectionStats).get_ClientInfo(i, out SelProtocol));
                }
            }
            catch {}
        }
Пример #2
0
        public static int GetSecondsTilDone(WMEncoder encoder, DateTime startTime)
        {
            int secsleft = -1;

            IWMEncStatistics  stats  = encoder.Statistics;
            IWMEncSourceGroup grp    = encoder.SourceGroupCollection.Item("SG_1");
            IWMEncAudioSource audsrc = (IWMEncAudioSource)grp.get_Source(WMENC_SOURCE_TYPE.WMENC_AUDIO, 0);

            double durationSecs     = (double)GetAudioSourceDuration(audsrc) / 1000F;
            double encodingTimeSecs = (double)(stats.EncodingTime * 10);

            double percentDone = encodingTimeSecs / durationSecs;

            TimeSpan ts = DateTime.UtcNow.Subtract(startTime);

            double estimatedTime = (ts.TotalSeconds / percentDone);

            secsleft = (int)(estimatedTime - ts.TotalSeconds);

            if (secsleft < 0)
            {
                secsleft = -1;
            }

            Logger.WriteLogMessage("Duration: " + durationSecs.ToString("G4") + " seconds, encoding source elapsed time: " + encodingTimeSecs.ToString("G4") + " seconds.");
            Logger.WriteLogMessage("Percent done: " + String.Format("{0:P}", percentDone) + ", encoding time left: " + secsleft + " seconds, estimated encoding time: " + estimatedTime.ToString("G4") + " seconds, elapsed time: " + ts.TotalSeconds.ToString("G4") + " seconds.");

            return(secsleft);
        }
Пример #3
0
 private void sReportPercentComplete(WMEncoder glbEncoder)
 {
     if (glbEncoder.RunState == WMENC_ENCODER_STATE.WMENC_ENCODER_RUNNING)
     {
         IWMEncStatistics       Stats     = glbEncoder.Statistics;
         IWMEncFileArchiveStats FileStats = (IWMEncFileArchiveStats)Stats.FileArchiveStats;
         int intCurrentFileDuration;
         int intPercentComplete;
         intCurrentFileDuration = System.Convert.ToInt32(FileStats.FileDuration * 10);
         try
         {
             intPercentComplete = 100 * intCurrentFileDuration / glbintSourceDuration;
             _backgroundWorker.ReportProgress(intPercentComplete, intPercentComplete.ToString() + "% Complete");
         }
         catch (Exception ex)
         {
             string strError = ex.ToString();
             sDisplayErrMessage(strError);
         }
         finally
         {
             FileStats = null;
             Stats     = null;
         }
     }
 }
Пример #4
0
		//To Set User's count watching Broadcast.
		private void tmrViewerCount_Tick(object sender, EventArgs e)
		{
			try
			{
				tsddlUsrDetails.DropDownItems.Clear();
				broadCastStats = DesktopEncoder.Statistics;
				int ViewersCount = ((IWMEncNetConnectionStats2)broadCastStats.NetConnectionStats).ClientCount;
				WMENC_BROADCAST_PROTOCOL SelProtocol = WMENC_BROADCAST_PROTOCOL.WMENC_PROTOCOL_HTTP;
				switch (ViewersCount)
				{
					case 0: tsUsersCount.Text = "No Users Connected.";
						break;
					case 1: tsUsersCount.Text = "1 User Connected.";
						break;
					default:
						tsUsersCount.Text = ViewersCount.ToString() + "Connected.";
						break;
				}
				for (int i = 0; i < ViewersCount; i++)
				{
					tsddlUsrDetails.DropDownItems.Add(((IWMEncNetConnectionStats2)broadCastStats.NetConnectionStats).get_ClientInfo(i, out SelProtocol));
				}
			}
			catch{}
		}