예제 #1
0
        public int AudioNavHandler(NameValueCollection parameters)
        {
            XbmcPlayer player = new XbmcPlayer();

            player.PlayBackStarted += new EventHandler <EventArgs>(delegate(object s, EventArgs ev) {
                Console.WriteLine("=> Playback started!");
            });
            player.PlayBackEnded += new EventHandler <EventArgs>(delegate(object s, EventArgs ev) {
                Console.WriteLine("=> Playback finished!");
            });

            //Thread.Sleep(TimeSpan.FromSeconds(1));
            player.Play("http://www.bensound.com/royalty-free-music?download=memories");

            while (!player.IsPlayingAudio)
            {
                Kodi.Sleep(TimeSpan.FromSeconds(1));
            }

            for (int i = 10; i <= 100; i += 5)
            {
                ApplicationBuiltins.SetVolume(i, true);
                Kodi.Sleep(TimeSpan.FromMilliseconds(200));
            }

            /* Keep monitoring for a bit */
            Kodi.Sleep(TimeSpan.FromSeconds(10));

            return(0);
        }
예제 #2
0
        public int PlaylistHandler(NameValueCollection parameters)
        {
            Uri uri = new Uri("http://www.amclassical.com/piano/");

            var data = new HttpClient()
                       .GetAsync(uri)
                       .Result.Content
                       .ReadAsStringAsync()
                       .Result;

            PlayList pl = new PlayList(PlayListType.Music);

            List <ListItem> items = new List <ListItem> {
            };

            var matches = new Regex("<a href=\"?(.*?)\"?>.*</a>").Matches(data);
            var number  = Math.Min(5, matches.Count);

            for (var i = 0; i < number; i++)
            {
                string path = matches[i].Groups[1].Value.ToLower();
                if (!path.EndsWith("mp3"))
                {
                    continue;
                }

                string url = uri.GetLeftPart(UriPartial.Authority) + path;

                pl.Add(url);
                items.Add(new ListItem(label: Path.GetFileName(path), url: url));
            }
            List.Add(items);
            List.Show();

            var player = new XbmcPlayer();

            player.Play(pl);

            for (int i = 0; i < pl.Count; i++)
            {
                while (!player.IsPlayingAudio)
                {
                    Kodi.Sleep(TimeSpan.FromMilliseconds(200));
                }
                var info = player.MusicInfoTag;
                Console.WriteLine($"[NOW PLAYING]: {player.PlayingFile}");
                Console.WriteLine("=====================");
                Console.WriteLine($"{info.URL}, {info.Title}");

                Kodi.Sleep(TimeSpan.FromSeconds(5));
                player.PlayNext();
            }

            return(0);
        }
예제 #3
0
 public void RegisterPlayer(XbmcPlayer player) => RegisterEventClass(player);