public async Task <MediaStatus> LoadMedia(
            ChromecastApplication application,
            Uri mediaUrl,
            string contentType,
            CancellationToken token,
            IMetadata metadata   = null,
            string streamType    = "BUFFERED",
            double duration      = 0D,
            object customData    = null,
            Track[] tracks       = null,
            int[] activeTrackIds = null,
            bool autoPlay        = true,
            double currentTime   = 0D)
        {
            int requestId   = RequestIdProvider.Next;
            var mediaObject = new MediaData(mediaUrl.ToString(), contentType, metadata, streamType, duration, customData, tracks);
            var req         = new LoadRequest(requestId, application.SessionId, mediaObject, autoPlay, currentTime,
                                              customData, activeTrackIds);

            var reqJson = req.ToJson();
            var requestCompletedSource = await AddRequestTracking(requestId, token).ConfigureAwait(false);

            await Write(MessageFactory.Load(application.TransportId, reqJson), token).ConfigureAwait(false);

            return(await requestCompletedSource.Task.WaitOnRequestCompletion(token).ConfigureAwait(false));
        }
Example #2
0
 private async void Client_ApplicationStarted(object sender, ChromecastApplication e)
 {
     while (_controller == null)
     {
         await Task.Delay(500);
     }
     await _controller.LoadMedia(SWYH.App.CurrentInstance.swyhDevice.ContentDirectory.GetWasapiUris(Audio.AudioFormats.Format.Mp3).FirstOrDefault(), null, null, "BUFFERED", 0D, null);
 }
Example #3
0
 private static async void Client_ApplicationStarted(object sender, ChromecastApplication e)
 {
     System.Console.WriteLine($"Launched {e.DisplayName}");
     while (_controller == null)
     {
         await Task.Delay(500);
     }
     await _controller.LoadMedia("https://iqmeta.com/chikalicka_bing.mp3", "audio/mp3", null, StreamType.BUFFERED);
 }
Example #4
0
 private async Task <MediaStatus> SendAsync(IMessageWithId message, ChromecastApplication application)
 {
     try
     {
         return((await SendAsync <MediaStatusMessage>(message, application.TransportId)).Status?.FirstOrDefault());
     }
     catch (Exception)
     {
         Status = null;
         throw;
     }
 }
Example #5
0
        private async void ChromeCastClient_ApplicationStarted(object sender, ChromecastApplication e)
        {
            if (controller == null)
            {
                controller = await ChromecastService.ChromeCastClient.LaunchSharpCaster();
            }
            applicationStarted = true;
            if (connectToUrl != "")
            {
                await controller.LoadMedia(connectToUrl, "video/mp4", null, "BUFFERED", 0D, null, null, null, true, timeStamp);

                mediaLoaded();
            }
        }
        private async Task <MediaStatus> LoadMedia(ChromeCastClient client, ChromecastApplication defaultApplication,
                                                   CancellationToken cancellationToken)
        {
            Trace.WriteLine(Invariant($"Loading Media [{playUri}] in on Chromecast {device.Name}"));

            var metadata = new GenericMediaMetadata()
            {
                title        = "Homeseer",
                metadataType = SharpCaster.Models.Enums.MetadataType.GENERIC,
            };

            var mediaStatus = await client.MediaChannel.LoadMedia(defaultApplication, playUri, null, cancellationToken,
                                                                  metadata : metadata,
                                                                  duration : duration.HasValue?duration.Value.TotalSeconds : 0D).ConfigureAwait(false);

            Trace.WriteLine(Invariant($"Loaded Media [{playUri}] in on Chromecast {device.Name}"));
            return(mediaStatus);
        }
        private static async void Client_ApplicationStarted(object sender, ChromecastApplication e)
        {
            System.Console.WriteLine($"Application {e.DisplayName} has launched");
            var track = new Track
            {
                Name           = "English Subtitle",
                TrackId        = 100,
                Type           = "TEXT",
                SubType        = "captions",
                Language       = "en-US",
                TrackContentId =
                    "https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/tracks/DesigningForGoogleCast-en.vtt"
            };

            while (_controller == null)
            {
                await Task.Delay(500);
            }

            await _controller.LoadMedia("https://commondatastorage.googleapis.com/gtv-videos-bucket/CastVideos/mp4/DesigningForGoogleCast.mp4", "video/mp4", null, "BUFFERED", 0D, null, new[] { track }, new[] { 100 });
        }
 private async void ApplicationStarted(object sender, ChromecastApplication e)
 {
     await LoadMedia(Title);
 }
Example #9
0
 private void Client_ApplicationStarted(object sender, ChromecastApplication e)
 {
     throw new NotImplementedException();
 }