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


