Буквально сегодня, во время написания дипломной работы, связанной с разработкой интерпретатора для формального языка, столкнулся с задачей написания видео плеера. А поскольку моя дипломная косвенно связанна с обработкой мультимедиа, от видео плеера требовалась максимальная простота, а именно банальное проигрывание видео файлов. С обработкой видео я столкнулся впервые, поэтому я начал гуглить и нагуглил, собственно, JMF(Java Media Framework), которая выглядела вполне подходящей.
Найти библиотеку JMF API можно на сайте Oracle или через *ваш любимый поисковик* (последняя рабочая версия 2.1.1e).
В архиве будет 4 jar файла, которые надо будет добавить к проекту. Я работал в Eclipse, поэтому для того, чтобы добавить их в проект, достаточно кликнуть правой кнопкой по проекту, выбрать Build Path-Configure Build Path-Add External JARs
Код реализации представлен ниже:
Вот тут и появилась проблема. Оказывается, хоть в документации к JMF и объявлена поддержка таких распространенных форматов, как avi и mpeg, на деле же это далеко не так. Видео либо не запускается вовсе, либо слышна только звуковая дорожка. Гугл показал, что с данной проблемой сталкивалось немало
пользователей(а сколько ещё сталкнётся?), вот только из кучи ссылок ответ нашелся лишь в одной.
Для решения данной проблемы к проекту необходимо добавить библиотеку jffmpeg-1.1.0.jar, который содержит кодеки для видео(и аудио, кстати) форматов.
Скачать её можно с официального сайта, который также легко находится поисковиком.
После добавления данной библиотеки видео тут же заработало.
Надеюсь, если статью пропустят, она поможет тем, кто столкнётся с подобной проблемой в будущем. Да и рабочий пример будет весьма полезен для начинающих программистов. На решение данной проблемы я потратил непростительное количество часов работы, давайте экономить время:)
Найти библиотеку JMF API можно на сайте Oracle или через *ваш любимый поисковик* (последняя рабочая версия 2.1.1e).
В архиве будет 4 jar файла, которые надо будет добавить к проекту. Я работал в Eclipse, поэтому для того, чтобы добавить их в проект, достаточно кликнуть правой кнопкой по проекту, выбрать Build Path-Configure Build Path-Add External JARs
Код реализации представлен ниже:
package example;
import java.awt.Dimension;
import javax.swing.*;
import javax.media.bean.playerbean.MediaPlayer;
class VideoExample extends JFrame{
MediaPlayer player;//наш плеер
public VideoExample(String path){
super("Простой видео плеер");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(new Dimension(640,480));//устанавливаем размер окна
player = new MediaPlayer();
//path - путь к файлу
player.setMediaLocation("file:///" + path);
player.setPlaybackLoop(false);//Повтор видео
player.prefetch ();//предварительная обработка плеера (без неё плеер не появится)
//добавляем на фрейм
add(player);
//player.start (); - сразу запустить плеер
setVisible(true);
}
public static void main(String []args){
VideoExample ve = new VideoExample("D:\\1.mpeg");
}
}
Вот тут и появилась проблема. Оказывается, хоть в документации к JMF и объявлена поддержка таких распространенных форматов, как avi и mpeg, на деле же это далеко не так. Видео либо не запускается вовсе, либо слышна только звуковая дорожка. Гугл показал, что с данной проблемой сталкивалось немало
пользователей(а сколько ещё сталкнётся?), вот только из кучи ссылок ответ нашелся лишь в одной.
Для решения данной проблемы к проекту необходимо добавить библиотеку jffmpeg-1.1.0.jar, который содержит кодеки для видео(и аудио, кстати) форматов.
Скачать её можно с официального сайта, который также легко находится поисковиком.
После добавления данной библиотеки видео тут же заработало.
Надеюсь, если статью пропустят, она поможет тем, кто столкнётся с подобной проблемой в будущем. Да и рабочий пример будет весьма полезен для начинающих программистов. На решение данной проблемы я потратил непростительное количество часов работы, давайте экономить время:)
Спасибо большое, очень к стати
ОтветитьУдалить888Sport Casino NJ Bonus Code - JTRHub
ОтветитьУдалить888Sport NJ Bonus 고양 출장안마 Code: JTGObet. Get a $25 양산 출장샵 risk-free first bet match up 시흥 출장샵 to $500 제천 출장마사지 + 200 남양주 출장샵 Free Spins! Play now!