Управление VLC плеером на C#

Управление 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#