Esempio n. 1
0
 void Playlist_SegmentSwitched(IHLSPlaylist sender, IHLSSegmentSwitchEventArgs args)
 {
     Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
     {
         try
         {
             var toSegment = args.ToSegment;
             if (toSegment.LoadState == SegmentState.LOADED)
             {
                 var metadatastreams = toSegment.GetMetadataStreams();
                 if (metadatastreams != null)
                 {
                     if (nometadataStatus.Visibility == Visibility.Visible)
                     {
                         nometadataStatus.Visibility = Visibility.Collapsed;
                     }
                     foreach (var stm in metadatastreams)
                     {
                         var payloads = stm.GetPayloads();
                         if (payloads != null)
                         {
                             var entry = _segmentid3tags.Where((hms) => { return(hms.StreamID == stm.StreamID); }).FirstOrDefault();
                             if (entry == null)
                             {
                                 entry = new HLSMetadataStream(stm.StreamID);
                                 _segmentid3tags.Add(entry);
                             }
                             entry.Payloads.AddRange(payloads.Select((pld) => { return(new HLSMetadataPayload(pld, args.ToBitrate, toSegment.SequenceNumber)); }));
                         }
                     }
                 }
             }
         }
         catch (Exception ex)
         {
         }
     });
 }
    void Playlist_SegmentSwitched(IHLSPlaylist sender, IHLSSegmentSwitchEventArgs args)
    {
      Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
      {
        try
        {
          var toSegment = args.ToSegment;
          if (toSegment.LoadState == SegmentState.LOADED)
          {
            var metadatastreams = toSegment.GetMetadataStreams();
            if (metadatastreams != null)
            {
              if (nometadataStatus.Visibility == Visibility.Visible)
                nometadataStatus.Visibility = Visibility.Collapsed;
              foreach (var stm in metadatastreams)
              {
                var payloads = stm.GetPayloads();
                if (payloads != null)
                {

                  var entry = _segmentid3tags.Where((hms) => { return hms.StreamID == stm.StreamID; }).FirstOrDefault();
                  if (entry == null)
                  {
                    entry = new HLSMetadataStream(stm.StreamID);
                    _segmentid3tags.Add(entry);
                  }
                  entry.Payloads.AddRange(payloads.Select((pld) => { return new HLSMetadataPayload(pld, args.ToBitrate, toSegment.SequenceNumber); }));
                }
              }
            }
          }
        }
        catch(Exception ex)
        {

        }
         
      });
    }