コード例 #1
0
ファイル: DLNA.cshtml.cs プロジェクト: trenat/Pi-Manager-
        public IActionResult OnPostVDelete(int id)
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            _toDelete.Add(_data.VideoPaths.First(x => x.ID == id));
            _data.VideoPaths.Remove(_data.VideoPaths.First(x => x.ID == id));
            _data.VideoPaths.Last().Value = "";


            Data = new DLNA(_data);
            return(Page());
        }
コード例 #2
0
ファイル: DLNA.cshtml.cs プロジェクト: trenat/Pi-Manager-
        public IActionResult OnPostAddV()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }
            if (!String.IsNullOrEmpty(Data.VideoPaths.Last().Value))
            {
                _data.VideoPaths.Last().ID    = Data.VideoPaths.Count;
                _data.VideoPaths.Last().Value = Data.VideoPaths.Last().Value;
                _data.VideoPaths.Add(new Pair());
                _toAdd.Add($"mkdir = A,{_data.VideoPaths.Last()}");
            }

            Data = new DLNA(_data);
            return(Page());
        }
コード例 #3
0
ファイル: DLNA.cshtml.cs プロジェクト: trenat/Pi-Manager-
        public void OnGet()
        {
            //var lineID = 0;
            //var confFIle = "cat /etc/minidlna.conf".Bash();
            //var lines = confFIle.Split("\r\n").Select(value => (lineID++, value));
            //var dictionaries = lines.Where(x => x.value.Contains("media_dir"));
            //var audio = dictionaries.Select(x => x.value.Split("=A,")[1]);
            //var video = dictionaries.Select(x => x.value.Split("=V,")[1]);
            //var photo = dictionaries.Select(x => x.value.Split("=P,")[1]);


            Data = new DLNA()
            {
                AudioCount  = 10,
                VideoCount  = 15,
                PhotosCount = 5,
                // AudioPaths = new List<string>(audio),
                // VideoPaths = new List<string>(video),
                // PhotosPaths = new List<string>(photo)
                AudioPaths = new List <Pair>()
                {
                    new Pair(1, "C:/audio"),
                    new Pair(2, "D:/audio"),
                    new Pair(3, "E:/audio"),
                    new Pair()
                },
                PhotosPaths = new List <Pair>()
                {
                    new Pair(1, "C:/photo"),
                    new Pair(2, "D:/photo"),
                    new Pair(3, "E:/photo"),
                    new Pair()
                },
                VideoPaths = new List <Pair>()
                {
                    new Pair(1, "C:/video"),
                    new Pair(2, "D:/video"),
                    new Pair(3, "E:/video"),
                    new Pair()
                }
            };

            _data = new DLNA(Data);
        }
コード例 #4
0
        public bool PlayMedia(string tvname, string path)
        {
            List <string> urls = new List <string>();

            bool isPlay = false;

            foreach (info.tv.TVInfo item in MyInfo.tvLibrary.value)
            {
                if (item.name.Equals(tvname))
                {
                    info.media.MediaItem mi = new info.media.MediaItem(path);
                    urls.Add(mi.url);
                    function.tv.TVFunction.sendCommand(item.ip, info.tv.TVCommand.GetInstance("OPEN_HTTP_MEDIA", null, false, "", mi.GetMediaType(), urls, null));
                    isPlay = true;
                    return(true);
                }
            }
            if (!isPlay)
            {
                DLNA    get_dlna = new DLNA();
                Command c        = new Command("DLNALIST", "GET", new Dictionary <string, string>());
                c.name = CommandName.DLNALIST;
                string javaRev = get_dlna.SendToJava(JsonConvert.SerializeObject(c));
                Console.WriteLine("发送dlna后接收到的消息" + javaRev);
                List <string> dlna_list = JsonConvert.DeserializeObject <List <string> >(javaRev);
                if (dlna_list.Contains(tvname))
                {
                    c.name    = CommandName.DLNA;
                    c.command = "PLAY";
                    c.param.Add("path", path);
                    c.param.Add("render", tvname);
                    get_dlna.SendToJava(JsonConvert.SerializeObject(this));
                    return(true);
                }
            }
            return(false);
        }
コード例 #5
0
ファイル: DLNA.cshtml.cs プロジェクト: trenat/Pi-Manager-
        public IActionResult OnPostSaveDLNAConf()
        {
            if (!isWind)
            {
                _oldLines.RemoveAll(x => _toDelete.Any(y => y.ID == x.ID));

                var clearLines = _oldLines.Select(x => x.Value).ToList();
                clearLines.AddRange(_toAdd);
                var builder = new StringBuilder();
                builder.AppendJoin("\r\n", clearLines);
                builder.ToString();
                $"echo {builder.ToString()} > /etc/minidlna.conf".Bash();

                "sudo minidlna -R".Bash();
                "sudo service minidlnad restart".Bash();

                _toAdd.Clear();
                _toDelete.Clear();
            }


            Data = new DLNA(_data);
            return(Page());
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: WendyH/testdlna
        static void Main(string[] args)
        {
            bool   debug      = false;                 // флаг отладки (ведения лог-файла)
            string MIMEtype   = "";                    // Если установлено - MIME-тип, который будет принудительно (без автоопределения) передан
            string userAgent  = "SEC_HHP_Flipps/1.0";  // User-Agent для запросов устройству
            string deviceIP   = "192.168.2.3";         // IP адрес устройства, которому будет отправлен файл (вместо IP может быть любое ключевое слово, по которому можно будет идентифицировать устройство)
            string fileURI    = "http://5.9.84.176:8080/app/2LES5e/sd0lGeslRbp8GCXTHsdpEE3jfNaogpnMB68c8bzqbIWRwR3xz8TPVxIx76W+7ijJPgNdKSL0fadYXoPyIdgXco9FWmwFnqVm703hEhet23JILKNo/A1xDVyAAgzwZnyBXqmqwRpbnG3gKK1+hU+ix5j9L5/yvOlSREqLIZ9baL3ozyliyKif0IL53g8wUKmr2RVJx+mimjtXgVttg/oa3myKT4nW4OvvL2n8vKJQxZvcQf3U57o722gGswA8XkcgEKOVjKS0zOC6eAG/+68YWeXegcgtwgeVkcNKMV6B9iO60x+A1lldRH+PwNLBCdahHBKyeJM0ZEIkLsUg3F9eGwYW9EN44GpgV6Wmb0+cn1wnljVtNhPpxDWQQMZ2+H2vpTBD/uChg/Vea8GpRkO+IA4EdLruyYgSAS6LS4q0R2ZrzKxVOszbtHucM.mp4";
            //string fileURI = "http://www.youtube.com/watch?v=25pzrnf8xyk";
            if (args.Length > 0) deviceIP   = args[0]; // Первый параметр, елси указан - IP устройства, которому будет отправлен файл
            if (args.Length > 1) {                     // Если указаны другие параметры, проверяем их
                fileURI   = GetKey(args, "-(f|file)"     , fileURI  ); // Отправляемый файл на телек
                MIMEtype  = GetKey(args, "-(m|mime)"     , MIMEtype ); // MIME-тип передаваемого файла
                userAgent = GetKey(args, "-(a|useragent)", userAgent); // User-Agent, который будет использован для общения с устройством
                debug     = ChkKey(args, "-d");        // Режим отладки - запись ответов от устройства в лог-файл
            }

            fileURI = CheckKnownLinks(fileURI);

            /*
            HttpServer httpServer = new MyHttpServer(8368);
            Thread thread = new Thread(new ThreadStart(httpServer.listen));
            thread.Start();

            Console.WriteLine("Press any key...");
            Console.ReadKey();
            return;
            */

            DLNA dlna = new DLNA();

            dlna.Debug     = debug;
            dlna.UserAgent = userAgent;
            dlna.MIMEtype  = MIMEtype;

            Console.WriteLine("Устройство: " + deviceIP);
            Console.WriteLine("Файл: " + fileURI);
            Console.WriteLine("User-Agent: " + userAgent);
            if (MIMEtype!="")
                Console.WriteLine("MIME-Type: " + MIMEtype);
            Console.WriteLine("");

            Console.WriteLine("Поиск устройств воспроизведения...");
            dlna.SearchRenderers(true);

            if (!dlna.SelectDevice(deviceIP)) {
                System.Threading.Thread.Sleep(2000);
                dlna.SearchRenderers();
            }

            if (dlna.SelectDevice(deviceIP))
                Console.WriteLine("Выбрано устройство: {0}", dlna.SelectedDevice.Name);
            else {
                Console.WriteLine("Устройство {0} не найдено.", deviceIP);
                return;
            }

            if (!dlna.SelectedDevice.Ready) {
                Console.WriteLine("Выбранное устройство не готово или не предназначено для воспроизведения видео.");
                return;
            }

            dlna.Stop();

            Console.WriteLine("Установка адреса файла...");
            dlna.SetFile(fileURI, "Advertisement", "02:00:00.000", "2015-11-04T11:54:23");

            Console.WriteLine("Play...");
            dlna.Play();

            //Console.WriteLine("Press any key...");
            //Console.ReadKey();
        }