Esempio n. 1
0
        /// <summary>
        /// Convert <paramref name="mqItem" /> to an instance of <see cref="MediaQueueItemWebEntity" />. Returns null if <paramref name="mqItem" /> is null.
        /// </summary>
        /// <param name="mqItem">The media queue item. May be null.</param>
        /// <returns><see cref="MediaQueueItemWebEntity" /> or null.</returns>
        private static MediaQueueItemWebEntity ToMediaQueueItem(MediaQueueItem mqItem)
        {
            if (mqItem == null)
            {
                return(null);
            }

            var mo = Factory.LoadMediaObjectInstance(mqItem.MediaObjectId);

            var moBuilderOptions = MediaObjectHtmlBuilder.GetMediaObjectHtmlBuilderOptions(mo);

            moBuilderOptions.DisplayType = DisplayObjectType.Thumbnail;

            var moBuilder = new MediaObjectHtmlBuilder(moBuilderOptions);

            return(new MediaQueueItemWebEntity()
            {
                MediaQueueId = mqItem.MediaQueueId,
                MediaObjectId = mqItem.MediaObjectId,
                StatusInt = mqItem.Status,
                Status = mqItem.Status,
                ConversionType = mqItem.ConversionType,
                DateAdded = mqItem.DateAdded,
                DateConversionStarted = mqItem.DateConversionStarted,
                DateConversionCompleted = mqItem.DateConversionCompleted,
                DurationMs = GetDurationMs(mqItem),
                StatusDetail = mqItem.StatusDetail,
                OriginalFilename = mo.Original.FileName,
                NewFilename = mqItem.NewFilename,
                ThumbnailUrl = GetThumbnailUrl(moBuilder),
                MediaObjectTitle = mo.Title,
                AlbumId = mo.Parent.Id,
                AlbumTitle = mo.Parent.Title
            });
        }
Esempio n. 2
0
        /// <summary>
        /// Calculates the number of milliseconds a media asset spent being processed. If it is currently being processed, calculated
        /// the elapsed number of milliseconds. Returns zero for items that have not started processing.
        /// </summary>
        /// <param name="mqItem">The media queue item.</param>
        /// <returns>An instance of <see cref="System.Double" />.</returns>
        private static double GetDurationMs(MediaQueueItem mqItem)
        {
            if (!mqItem.DateConversionStarted.HasValue)
            {
                return(0);
            }

            if (!mqItem.DateConversionCompleted.HasValue)
            {
                return((DateTime.UtcNow - mqItem.DateConversionStarted.Value).TotalMilliseconds);
            }

            return((mqItem.DateConversionCompleted.Value - mqItem.DateConversionStarted.Value).TotalMilliseconds);
        }
Esempio n. 3
0
 /**
  * Starts playback of the item at the given position.
  *
  * @param itemIndex The index of the item to play.
  * @param positionMs The position at which playback should start.
  * @param playWhenReady Whether the player should proceed when ready to do so.
  */
 private void setCurrentItem(int itemIndex, long positionMs, bool playWhenReady)
 {
     MaybeSetCurrentItemAndNotify(itemIndex);
     if (castMediaQueueCreationPending)
     {
         MediaQueueItem[] items = new MediaQueueItem[mediaQueue.Count];
         for (int i = 0; i < items.Length; i++)
         {
             items[i] = buildMediaQueueItem(mediaQueue[i]);
         }
         castMediaQueueCreationPending = false;
         castPlayer.LoadItems(items, itemIndex, positionMs, Player.RepeatModeOff);
     }
     else
     {
         currentPlayer.SeekTo(itemIndex, positionMs);
         currentPlayer.PlayWhenReady = playWhenReady;
     }
 }
Esempio n. 4
0
 public async Task <IMediaChannelResult> QueueInsertAndPlayItemAsync(MediaQueueItem item, int insertBeforeItemId, long playPosition, Org.Json.JSONObject customData)
 {
     return((await QueueInsertAndPlayItem(item, insertBeforeItemId, playPosition, customData)).JavaCast <IMediaChannelResult> ());
 }
Esempio n. 5
0
 public async Task <IMediaChannelResult> QueueAppendItemAsync(MediaQueueItem item, Org.Json.JSONObject customData)
 {
     return((await QueueAppendItem(item, customData)).JavaCast <IMediaChannelResult> ());
 }