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()); }
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()); }
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); }
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); }
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()); }
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(); }