Я бы порекомендовал vlcj, потому что я уверен, что у него есть все форматы, которые вам могут понадобиться, или have.It не устарел вообще и легко начать с. Если вы хотите отображать видео графически, я не думаю, что вы когда-либо могли найти простые инструкции, как вы упомянули, но если вы организуете все шаги, о которых я расскажу и объясню более подробно, вы увидите, что vlcj - лучший вариант для обработки таких медиа (как мне кажется). Мне также нравится и рекомендую JavaFx, потому что эффектов, которые вы можете сделать с этим, но это слишком сложно для меня, чтобы настроить и закодировать в этом материале.
Итак, давайте начнем. Во-первых, я хотел бы сказать, что я применил vlcj в приложении на основе Swing (в Windows), но это не должно вас огорчить, потому что для непосредственного всплывающего плеера, о котором вы упоминаете, мы могли бы просто сделайте jdialog и поместите видео-поверхность в свою область содержимого.
шаги
1) Таким образом, первое, что должно быть сделано, чтобы загрузить VLC Media Player (нам потребуется 32 битную версию, которая играет в обоих 32- или 64-разрядных вычислительных средах) .Я был ужасный месяц пытается чтобы настроить, почему мое приложение не загрузило нужные библиотеки и обнаружило, что при запуске файла с расширением jar он работает на 32-битном jvm (в eclipse работает на 64-битном jvm, и все в порядке. Поэтому нам нужна 32-битная версия) в то время как у меня были 64-разрядные родные библиотеки для загрузки.В любом случае, если вы загружаете и устанавливаете 32-битный медиаплеер vlc, создайте где-нибудь папку для включения вашего проекта (скажем, «C:/MyProject») внутри MyProject создайте другую папку и вызовите ее, например «Needed» (здесь мы разместим все необходимые библиотеки для vlcj для правильной работы). Теперь из содержимого C: \ Program Files (x86) \ VideoLAN \ VLC скопируйте каталог плагинов и 4 dlls (axvlc.dll, libvlc.dll, libvlccore.dll, npvlc. dll) и вставьте их в свою нужную папку
2) Теперь, если вы работаете в Eclipse IDE или аналогичном, вам нужно будет создать папку в вашем проекте (скажем, «lib») и внутри, чтобы создать другую папку (name it «jars»). В папке jars разместите следующие банки: jna-3.5.1.jar, platform-3.5.1.jar, vlcj-2.2.0.jar. Вы можете найти эти банки из vlcj google project.And then just включите их в свой путь к классам (либо выберите их и щелкните правой кнопкой мыши-> добавить в путь сборки или перейдите к свойствам проекта -> путь сборки Java и добавьте эти 3 баночки). Все для настройки, прежде чем мы начнем кодирование с установки проигрывателя.
3) Вам нужно загрузить vlcj перед тем, как начать использовать его. Я просто использую этот код, чтобы сделать это возможным (я объясню это в ближайшее время, не переживайте).
public void LoadLibrary(){
SwingWorker loadWorker;
loadWorker = new SwingWorker(){
@Override
protected Object doInBackground() throws Exception {
// TODO Auto-generated method stub
Thread.sleep(2000);
path = new File("").getAbsolutePath().toString();
path = path.replace(".", "");
path = path.replace("\\", "//");
path = path+"//Needed";
if(RuntimeUtil.isWindows()){
NativeLibrary.addSearchPath(
"libvlc",path
);
Native.loadLibrary(RuntimeUtil.getLibVlcLibraryName(), LibVlc.class);
}
else if(RuntimeUtil.isNix()){
NativeLibrary.addSearchPath(
"libvlc",path
);
}
mediaPlayerFactory = new MediaPlayerFactory();
player = mediaPlayerFactory.newEmbeddedMediaPlayer();
CanvasVideoSurface videoSurface = mediaPlayerFactory.newVideoSurface(canvas);
player.setVideoSurface(videoSurface);
return null;
}
};
loadWorker.execute();
}
Так что я сделать, это сделать поток для Swing, на основе приложений, потому что вы не можете играть средства массовой информации, если ваши средства массовой информации холст не отображаемый и все в конструкторе полностью построено, когда его код done.That означает, что перед тем, как сделать плеер, мы должны сначала создать задержку (моя - 2 секунды), чтобы наш конструктор прекратил свою работу, а наш JFrame (или jWindow или jDialog и т. д.) стал отображаемым. Далее я вычисляю свой путь, динамически перемещаясь по пути моей запущенной банки (обратите внимание: не из рабочего пространства внутри Eclipse) и введите нужную папку для реализации требуемых родных библиотек. Внутри оператора if я говорю системе, чтобы искать libvlc.dll в определенном пути, который я вычислил, а затем загружаю и, таким образом, шаг вперед, чтобы воспроизвести медиафайлы. Внешняя инструкция if-else на самом деле c reate мой плеер и поместить холст для своего VideoSurface (canvas - это Canvas java.awt Object Я использую WindowsCanvas, потому что я работаю только в Windows, вы можете найти для linux или mac подобный холст (не беспокойтесь об этом!)) Вне Swing -Worker поле (поток), я просто говорю, что поток будет выполняться (важно как инструкция функции вызова).
4) Чтобы воспроизвести файл, я просто использую кнопку где-то в своем приложении, чтобы вызывать событие действия при каждом нажатии, чтобы мы что-то делали внутри него. Я, например, делаю JFileChooser для выбора медиафайла. Вы можете легко найти его, но вот мой код:
final JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter0 = new FileNameExtensionFilter(".wav", "wav");
FileNameExtensionFilter filter1 = new FileNameExtensionFilter(".mp3","mp3");
FileNameExtensionFilter filter2 = new FileNameExtensionFilter(".mpg","mpg");
FileNameExtensionFilter filter3 = new FileNameExtensionFilter(".mp4","mp4");
FileNameExtensionFilter filter4 = new FileNameExtensionFilter(".avi","avi");
FileNameExtensionFilter filter5 = new FileNameExtensionFilter(".flv","flv");
FileNameExtensionFilter filter6 = new FileNameExtensionFilter(".wmv","wmv");
FileNameExtensionFilter filter7 = new FileNameExtensionFilter(".3gp", "3gp");
FileNameExtensionFilter filter8 = new FileNameExtensionFilter(".swf", "swf");
FileNameExtensionFilter filter9 = new FileNameExtensionFilter(".mkv", "mkv");
FileNameExtensionFilter filter10 = new FileNameExtensionFilter(".flac", "flac");
FileNameExtensionFilter filter11 = new FileNameExtensionFilter("Music & Videos","wav","mp3","mpg","mp4","avi","flv","wmv","3gp","swf","mkv","flac","VOB");
FileNameExtensionFilter filter12 = new FileNameExtensionFilter("Music","wav","mp3","flac");
FileNameExtensionFilter filter13 = new FileNameExtensionFilter(".VOB", "VOB");
FileNameExtensionFilter filter14 = new FileNameExtensionFilter("Videos","mpg","mp4","avi","flv","wmv","3gp","swf","mkv","VOB");
chooser.setFileFilter(filter14);
chooser.setFileFilter(filter2);
chooser.setFileFilter(filter3);
chooser.setFileFilter(filter4);
chooser.setFileFilter(filter5);
chooser.setFileFilter(filter6);
chooser.setFileFilter(filter13);
chooser.setFileFilter(filter7);
chooser.setFileFilter(filter8);
chooser.setFileFilter(filter9);
chooser.setFileFilter(filter12);
chooser.setFileFilter(filter0);
chooser.setFileFilter(filter1);
chooser.setFileFilter(filter10);
chooser.setFileFilter(filter11);
int returnVal = chooser.showOpenDialog(getParent());
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
File myfile1 = chooser.getSelectedFile();
myfilepath1 = chooser.getSelectedFile().getAbsolutePath();
}
player.startMedia("file:///"+myfilepath1);
player.pause();
Эти файловые фильтры некоторых типов медиа-файлов, которые могут играть vlcj для u.What я действительно открывает диалоговое окно файла, чтобы выбрать файл и если я выберу файл, я держу его путь (полезно для выражения vlcj, где его искать).
5) Теперь, чтобы воспроизвести файл у просто должны набрать следующий код:
player.play();
Может быть, в другом случае действия другого Баттона.
6) если вы закончите писать, все, что вам нужно сделать, это экспортировать проект в исполняемый файл jar в папку MyProject, которая была сначала создана и запущена (внимание, дважды щелкнув по нему (не с консоли (иначе это будет быть запущенным с 64-битным jvm, и вы не хотите, чтобы у вас были 32-разрядные аборигены и vlcj не принимали эти конфликты)))
В заключение я должен сказать, что эти шаги сработали для меня. Надеюсь, они помогут вам далее в разработке приложений.
С уважением, PeGiannOS
* "mp4 или другой формат" * Вы изменить формат видео? ваши клиенты имеют широкую полосу пропускания? Обратите внимание, что в то время как JMF является древним и оставленным, VLCJ не является. В прошлый раз, когда я проверял, было непрактично использовать VLCJ в апплете. * «Я нашел подобный проект .. Но ..» * Что это за проект, который не подходит для вашего прецедента (не ожидайте, что мы будем следовать ссылке и выяснить это)? –
mp4 - это просто контейнер, какой видео/аудио кодек вы ожидаете использовать? H264, VP8? У меня нет ответа на это, но вот мои исследования: http://www.adamish.com/blog/archives/303 – Adam
Эндрю, моя идея заключалась в том, чтобы создать приложение для его локального использования. Основная проблема заключается в том, чтобы сэкономить время для открытия медиафайлов. Извините за эту ссылку. Он показывает, как воспроизводить видео с выбранного медиаплеера, но мне нужно настроить дополнительные параметры для настройки для игрока. «Desktop.getDesktop(). Open (новый файл (« the.mp4 »)); Я ожидаю чего-то подобного в своем событии onClick со специальной опцией для игрока. Адам, я буду использовать H264. – pvaitonis