//<SnippetDataCueEntered> private void MetadataTrack_DataCueEntered(TimedMetadataTrack sender, MediaCueEventArgs args) { DataCue cue = (DataCue)args.Cue; string data = System.Text.Encoding.Unicode.GetString(cue.Data.ToArray()); System.Diagnostics.Debug.WriteLine("Cue entered: " + data); }
private void AddTimedMetaDataTrack_Data() { //<SnippetAddDataTrack> TimedMetadataTrack metadataTrack = new TimedMetadataTrack("ID_0", "en-us", TimedMetadataKind.Data); metadataTrack.Label = "Custom data track"; metadataTrack.CueEntered += MetadataTrack_DataCueEntered; metadataTrack.CueExited += MetadataTrack_CueExited; // Example cue data string data = "Cue data"; byte[] bytes = new byte[data.Length * sizeof(char)]; System.Buffer.BlockCopy(data.ToCharArray(), 0, bytes, 0, bytes.Length); Windows.Storage.Streams.IBuffer buffer = bytes.AsBuffer(); for (int i = 0; i < 10; i++) { DataCue cue = new DataCue() { Id = "ID_" + i, Data = buffer, StartTime = TimeSpan.FromSeconds(3 + i * 3), Duration = TimeSpan.FromSeconds(2) }; metadataTrack.AddCue(cue); } mediaSource.ExternalTimedMetadataTracks.Add(metadataTrack); //</SnippetAddDataTrack> }
private void MetadataTrack_DataCueEntered(TimedMetadataTrack sender, MediaCueEventArgs args) { var playbackList = _mediaPlayer.Source as MediaPlaybackList; DataCue cue = (DataCue)args.Cue; OnPlaybackCueTriggered(new PlaybackCueTriggeredEventArgs() { Segment = (int)playbackList.CurrentItemIndex, EventId = Convert.ToInt32(cue.Id), Time = cue.StartTime }); }
public bool LoadAudioCues(List <InkEvent> events) { if (CurrentSession.Segments == 0) { this.LogMessage(RECORD_LOG_NAME, "LoadAudioCues() failed because No audio segments"); return(false); } if (_playbackList == null) { this.LogMessage(RECORD_LOG_NAME, "LoadAudioCues() failed because MediaPlaybackList is null."); return(false); } foreach (var ev in events) { if (ev.SegmentId >= CurrentSession.Segments) { this.LogMessage(RECORD_LOG_NAME, "LoadAudioCues() failed because event segment ID out of range: " + ev.SegmentId); } string data = "Cue data"; byte[] bytes = new byte[data.Length]; System.Buffer.BlockCopy(data.ToCharArray(), 0, bytes, 0, bytes.Length); IBuffer buffer = bytes.AsBuffer(); var cue = new DataCue { Data = buffer, Id = ev.Id.ToString(), StartTime = ev.TimeHappened }; var playbackItem = _playbackList.Items[ev.SegmentId]; var track = playbackItem.TimedMetadataTracks[0]; try { track.AddCue(cue); } catch (Exception e) { this.LogMessage(RECORD_LOG_NAME, "LoadAudioCues() failed because Exception loading cue: " + e.Message); } } return(true); }