Beispiel #1
0
        static BrowseItem fileInfoToBrowseItem(FileInfo fi, bool getMediaDuration, bool setNameToFullPath)
        {
            BrowseItem output = new BrowseItem();

            // Name / path
            if (setNameToFullPath)
            {
                output.Name = fi.FullName;
            }
            else
            {
                output.Name = fi.Name;
            }

            output.Size        = fi.Length;
            output.IsDirectory = false;

            if (getMediaDuration)
            {
                try
                {
                    TimeSpan mDuration = DurationOfMediaFile_OSSpecific(fi.FullName);
                    output.Duration = mDuration.TotalSeconds;
                }
                catch (Exception ex)
                {
                    Functions.WriteLineToLogFileIfAdvanced("Could not get duration of media file: " + fi.FullName + " :");
                    Functions.WriteExceptionToLogFileIfAdvanced(ex);
                }
            }

            return(output);
        }
Beispiel #2
0
        /// <summary>
        /// Stop a streamer and remove it from the local list of streamers
        /// </summary>
        /// <param name="streamerID"></param>
        /// <returns></returns>
        public bool StopStreamer(int streamerID)
        {
            if (Settings.Default.DebugStreaming)
            {
                Functions.WriteLineToLogFile("StreamingManager: Received stop command for streamer " + streamerID.ToString());
            }
            try
            {
                MediaStreamer mediaStreamer = GetStreamerByID(streamerID);
                if (mediaStreamer == null)
                {
                    return(false);
                }

                // Abort streamer (on a different thread)
                AbortMediaStreamerAndDeleteFiles((object)mediaStreamer);

                /*
                 * System.Threading.ParameterizedThreadStart ts = new System.Threading.ParameterizedThreadStart(AbortMediaStreamerAndDeleteFiles);
                 * System.Threading.Thread t_abortStreamer = new System.Threading.Thread(ts);
                 * t_abortStreamer.Start(mediaStreamer); */

                // Remove from streamers
                RemoveStreamer(streamerID);

                return(true);
            }
            catch (Exception ex)
            {
                Functions.WriteExceptionToLogFileIfAdvanced(ex);
            }
            return(false);
        }
Beispiel #3
0
 void AbortMediaStreamerAndDeleteFiles(object obj)
 {
     try
     {
         MediaStreamer ms = (MediaStreamer)obj;
         ms.AbortStreaming(true);
     }
     catch (Exception ex)
     {
         // Must catch exceptions on other threads
         Functions.WriteExceptionToLogFileIfAdvanced(ex);
     }
 }