//CreateCastMedia public void CreateMediaInfo() { var videoUrl = mediaInfo.SourceURL; var vname = mediaInfo.DisplayName; var extra = new string[] { "{", "}" }; var metaData = new MediaMetadata(MediaMetadataType.Generic); metaData.SetString(mediaInfo.DisplayName, MetadataKey.Title); metaData.SetString("Hello World on Fridays!", MetadataKey.Subtitle); var builder = new MediaInformationBuilder(); builder.ContentId = videoUrl; builder.StreamType = MediaStreamType.Buffered; builder.Metadata = metaData; castMediaInfo = builder.Build(); }
public void CreateMediaInfo(BCOVVideo video) { BCOVSource source = null; // Don't restart the current video if (currentVideo != null) { didContinueCurrentVideo = currentVideo.IsEqual(video); if (didContinueCurrentVideo) { return; } } suitableSourceNotFound = false; // Try to find an HTTPS source first source = FindDashSource(video.Sources, true); if (source == null) { source = FindDashSource(video.Sources, false); } // If no source was able to be found, let the delegate know // and do not continue if (source == null) { suitableSourceNotFound = true; gcmDelegate.SuitableSourceNotFound(); return; } currentVideo = video; var videoUrl = source.Url.AbsoluteString; var vname = video.Properties["name"]; var durationNumber = video.Properties["duration"]; var metaData = new MediaMetadata(MediaMetadataType.Generic); metaData.SetString(vname.ToString(), "kGCKMetadataKeyTitle"); var poster = video.Properties["poster"].ToString(); var posterUrl = new NSUrl(poster); metaData.AddImage(new Image(posterUrl, (nint)posterImageSize.Width, (nint)posterImageSize.Height)); //TODO Implement this logic for closed caption cast //var mediaTracks = new List<MediaTrack>(); //var textTracks = video.Properties["text_tracks"]; //var trackIndentifier = 0; //foreach (var text in textTracks) //{ // trackIndentifier += 1; // string src, lang, name, contentType, kind; // if (text.Key.ToString() == "src") // src = text. // //string lang = text["srclang"] as string; // //var name = text["label"] as string; // //var contentType = text["mime_type"] as string; //} var builder = new MediaInformationBuilder(); builder.ContentId = videoUrl; builder.StreamType = MediaStreamType.Unknown; builder.ContentType = source?.DeliveryMethod; builder.Metadata = metaData; builder.StreamDuration = (double)(durationNumber as NSNumber); //TODO uncomment this for closed caption cast //builder.MediaTracks = mediaTracks; castMediaInfo = builder.Build(); }