как получить/установить положение кадра в vlcj?

Как - 1.получить текущую позицию кадра аудио/видео дорожки?? 2.как перейти к определенной позиции кадра трека?? с помощью vlcj SDK. любые фрагменты кода будут высоко оценены!


person adn.911    schedule 07.12.2012    source источник


Ответы (2)


На самом деле вы можете сделать это с небольшой математикой. Это не самый чистый способ, но его легко понять.

VLCj позволяет вам получить длину вашего мультимедиа, используя .getLength(). Однако обратите внимание, что это возвращает длину мультимедиа в миллисекундах. Более того, вы можете получить количество кадров в секунду вашего мультимедиа, используя .getFPS().

Итак, теперь вы можете получить общее количество кадров как:

total_frames = .getFPS * .getLength() /1000;

Затем вы можете использовать .getPosition(), чтобы узнать где вы сейчас находитесь в миллисекундах, а затем преобразовать это в кадр. Это возвращается в процентах.

current_frame = .getPosition() * total_frames;

Теперь, если вы хотите перейти к определенному кадру, назовите его desired_frame. Вы можете использовать .setPosition(), который принимает проценты. Поэтому вам нужно определить процент от общего числа, который представляет кадр, к которому вы хотите перейти.

.setPosition((float)desired_frame/total_frames);
person JahKnows    schedule 25.04.2017

VLCJ на самом деле не настроен для такого рода покадрового доступа напрямую — вы можете использовать setTime() и getTime() в объекте медиаплеера, но это будет возвращать время с начала в миллисекундах, а не в кадре. Конечно, если вы знаете частоту кадров, преобразовать ее из одной в другую относительно просто.

Если вам нужны операции более низкого уровня, чем предоставляет VLCJ, вы можете взглянуть на Xuggler.

person Michael Berry    schedule 29.01.2013