public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var jsonObject = JObject.Load(reader); int type = int.Parse(jsonObject["metadataType"].ToString()); MediaMetadata mediaMetadata = null; switch (type) { case 1: mediaMetadata = new GenericMediaMetadata(); break; case 2: mediaMetadata = new MovieMediaMetadata(); break; case 3: mediaMetadata = new MusicTrackMediaMetadata(); break; case 4: mediaMetadata = new PhotoMediaMetadata(); break; } if (mediaMetadata != null) { serializer.Populate(jsonObject.CreateReader(), mediaMetadata); } return(mediaMetadata); }
public void Load(Uri contentUri, string contentType, MediaMetadata metadata, bool autoPlay = true, StreamType streamType = StreamType.BUFFERED) { EnsureChannelIsConnected(); Application runningApplication = EnsureApplicationIsRunning(); if (runningApplication.ApplicationId != Channel.DEFAULT_APP_ID) { LaunchApp(Channel.DEFAULT_APP_ID); runningApplication = EnsureApplicationIsRunning(); } StartSession(runningApplication.TransportId); Response response = _channel.SendRequest(Channel.NS_CAST_MEDIA, new LoadRequest(runningApplication.SessionId, new Media { ContentId = contentUri.ToString(), ContentType = contentType, Metadata = metadata, StreamType = streamType }, autoPlay), runningApplication.TransportId); HandleResponse(response); }