Как - 1.получить текущую позицию кадра аудио/видео дорожки?? 2.как перейти к определенной позиции кадра трека?? с помощью vlcj SDK. любые фрагменты кода будут высоко оценены!
как получить/установить положение кадра в vlcj?
Ответы (2)
На самом деле вы можете сделать это с небольшой математикой. Это не самый чистый способ, но его легко понять.
VLCj позволяет вам получить длину вашего мультимедиа, используя .getLength()
. Однако обратите внимание, что это возвращает длину мультимедиа в миллисекундах. Более того, вы можете получить количество кадров в секунду вашего мультимедиа, используя .getFPS()
.
Итак, теперь вы можете получить общее количество кадров как:
total_frames = .getFPS * .getLength() /1000;
Затем вы можете использовать .getPosition()
, чтобы узнать где вы сейчас находитесь в миллисекундах, а затем преобразовать это в кадр. Это возвращается в процентах.
current_frame = .getPosition() * total_frames;
Теперь, если вы хотите перейти к определенному кадру, назовите его desired_frame
. Вы можете использовать .setPosition()
, который принимает проценты. Поэтому вам нужно определить процент от общего числа, который представляет кадр, к которому вы хотите перейти.
.setPosition((float)desired_frame/total_frames);
VLCJ на самом деле не настроен для такого рода покадрового доступа напрямую — вы можете использовать setTime()
и getTime()
в объекте медиаплеера, но это будет возвращать время с начала в миллисекундах, а не в кадре. Конечно, если вы знаете частоту кадров, преобразовать ее из одной в другую относительно просто.
Если вам нужны операции более низкого уровня, чем предоставляет VLCJ, вы можете взглянуть на Xuggler.