Управление VLC плеером на C#
VLC плеер и удаленное управление
В VLC плеер встроено много интересных функций. Одна из них - это удаленное управление (RC). С помощью него вы можете контролировать работу плеера через консоль (putty) или свою программу. RC интерфейс хорошо подходит для управления из внешний программы, например, написанной на C#.
Для запуска VLC с RC интерфейсом можно использовать следующую командную строку:
vlc.exe --control=rc --rc-host 127.0.0.1:4444
Для управления плеером вам необходимо подключиться по указанному адресу и порту. Обмен производится в текстовом режиме. Например, для теста можно использовать программу putty. Для получения списка команд пошлите команду help.
Реализация клиентской части на C#
В первую очередь нам понадобится сокет-клиент. После запуска ему передаем адрес и порт VLC плеера.
Int32 port = 4444; TcpClient client = new TcpClient("localhost", port);
затем нам понадобится функция для отсылки команды и получение ответа от плеера. Стоит отметить, что по завершении работы закрываем сокет.
try { Int32 port = 4444; TcpClient client = new TcpClient("localhost", port); // Преобразуем команду в массив байт. Byte[] data = System.Text.Encoding.ASCII.GetBytes("help\n"); // Получаем поток для отсылки данных VLC плееру NetworkStream stream = client.GetStream(); // Посылаем данные. stream.Write(data, 0, data.Length); Console.WriteLine("Sent to VLC: {0}", message); // Буфер для хранения ответа от сервера. data = new Byte[2048]; // Строка для хранения ответа String responseData = String.Empty; // Получаем ответ от VLC плеера. Int32 bytes = stream.Read(data, 0, data.Length); responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); Console.WriteLine("Received: {0}", responseData); // Закрываем поток и сокет-клиент. stream.Close(); client.Close(); } catch (ArgumentNullException e) { Console.WriteLine("ArgumentNullException: {0}", e); } catch (SocketException e) { Console.WriteLine("SocketException: {0}", e); }
Основные команды управления VLC
Добавляем и запускаем файл на проигрывание:
add C:\Users\User\Videos\video.avi
Изменяем громкость:
volume 50
Ставим на паузы:
pause
Добавляем в очередь плейлиста файл:
enqueue C:\Users\User\Videos\video.avi
Закрываем плеер:
quit
Пример
Пример вы можете найти на GitHub/UnickSoft.
Теги: VideoLan VLC C#