Написание простого видео плеера на Java с использованием JMF API
Буквально сегодня, во время написания дипломной работы, связанной с разработкой интерпретатора для формального языка, столкнулся с задачей написания видео плеера. А поскольку моя дипломная косвенно связанна с обработкой мультимедиа, от видео плеера требовалась максимальная простота, а именно банальное проигрывание видео файлов. С обработкой видео я столкнулся впервые, поэтому я начал гуглить и нагуглил, собственно, JMF(Java Media Framework), которая выглядела вполне подходящей.
Найти библиотеку JMF API можно на сайте Oracle или через *ваш любимый поисковик* (последняя рабочая версия 2.1.1e).
В архиве будет 4 jar файла, которые надо будет добавить к проекту. Я работал в Eclipse, поэтому для того, чтобы добавить их в проект, достаточно кликнуть правой кнопкой по проекту, выбрать Build Path-Configure Build Path-Add External JARs
Код реализации представлен ниже:
import java.awt.Dimension;
import javax.swing.*;
import javax.media.bean.playerbean.MediaPlayer;
class VideoExample extends JFrame <
MediaPlayer player;//наш плеер
public VideoExample(String path) <
super(«Простой видео плеер»);
setSize(new Dimension(640,480));//устанавливаем размер окна
player = new MediaPlayer();
//path — путь к файлу
player.setMediaLocation(«file:///» + path);
player.setPlaybackLoop(false);//Повтор видео
player.prefetch ();//предварительная обработка плеера (без неё плеер не появится)
//добавляем на фрейм
add(player);
//player.start (); — сразу запустить плеер
public static void main(String []args) <
VideoExample ve = new VideoExample(«D:\\1.mpeg»);
>
>
Вот тут и появилась проблема. Оказывается, хоть в документации к JMF и объявлена поддержка таких распространенных форматов, как avi и mpeg, на деле же это далеко не так. Видео либо не запускается вовсе, либо слышна только звуковая дорожка. Гугл показал, что с данной проблемой сталкивалось немало
пользователей(а сколько ещё сталкнётся?), вот только из кучи ссылок ответ нашелся лишь в одной.
Для решения данной проблемы к проекту необходимо добавить библиотеку jffmpeg-1.1.0.jar, который содержит кодеки для видео(и аудио, кстати) форматов.
Скачать её можно с официального сайта, который также легко находится поисковиком.
После добавления данной библиотеки видео тут же заработало.
Надеюсь, если статью пропустят, она поможет тем, кто столкнётся с подобной проблемой в будущем. Да и рабочий пример будет весьма полезен для начинающих программистов. На решение данной проблемы я потратил непростительное количество часов работы, давайте экономить время:)
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Источник статьи: http://habr.com/ru/sandbox/42721/
Как создать плеер для сайта на HTML5 и JavaScript
Контент на сайте можно разнообразить с помощью видео или аудио. Учим использовать HTML5 video- и audio-плееры и работать с ними на JS.
Уже прошли те времена, когда для воспроизведения аудио или видео на сайте нужно было подключать сторонний плеер на Flash — в Adobe решили больше не поддерживать эту технологию, а значит, мы можем вздохнуть с облегчением, потому что HTML5 позволяет создавать плееры с помощью тегов и .
Как использовать audio и video в HTML5
Чтобы создать плеер, достаточно такого кода для аудио:
Атрибут controls используется для того, чтобы отобразить элементы управления. Если его не указать, никакого интерфейса не будет: аудиоплеер не будет отображаться, а в видеоплеере просто будет показан кадр из видео или постер.
Обратите внимание, как указан источник. Для видео достаточно прописать атрибут src, а для аудио нужно прописывать дополнительные элементы source, чтобы указать пути и формат файлов. В коде выше добавлено два одинаковых файла, но в разных расширениях — это нужно для того, чтобы прослушать запись можно было на всех устройствах и во всех браузерах, потому что не все из них поддерживают mp3 или какой-то другой формат.
Также внутри плеера можно прописать какой-нибудь текст — его увидят те, у кого не поддерживается HTML5. Правилом хорошего тона считается указание ссылки на скачивание современного браузера.
Вот список атрибутов, которые можно указать для плеера:
- controls — панель управления;
- autoplay — автовоспроизведение;
- loop — цикличность;
- muted — выключение звука;
- poster — обложка видео. Если не указать, будет выбран случайный кадр;
- preload — предварительная загрузка. Существует 3 значения: auto (полностью), metadata (небольшую часть, чтобы определить основные метаданные) и none (без загрузки);
- src — ссылка на файл.
Также можно указать высоту и ширину.
Существует элемент , который размещается внутри плеера, — в нем указывается путь к текстовым файлам: субтитрам или метаданным. Для них прописываются следующие атрибуты:
- default — указывает на дорожку, которая используется по умолчанию;
- kind — тип файла, можно указать следующие значения:
- subtitles — субтитры (стоит по умолчанию),
- captions — субтитры для глухонемых,
- chapters — название глав и их временные рамки,
- descriptions — звуковое описание происходящего для слепых,
- metadata — метаданные;
- label — название дорожки;
- src — путь к файлу;
- srclang — язык дорожки.
Всего этого достаточно, чтобы вставить простой плеер на сайт, но некоторых функций у него все-таки нет:
- можно убрать звук, но нельзя регулировать громкость;
- нельзя менять скорость воспроизведения;
- нельзя поставить на повтор и так далее.
Поэтому мы подключаем JS и пишем свой интерфейс.
Как написать плеер на JS
Плеер на JS работает, как и любой другой интерфейс: пользователь нажимает на кнопки, скрипт отлавливает эти события и вызывает необходимые функции. Прежде всего нужно создать сам интерфейс:
Источник статьи: http://skillbox.ru/media/code/kak_sozdat_pleer_dlya_sayta/
Пишем проигрыватель lossless аудио на JavaScript
Добрый день, %username%. Сегодня я хотел бы поделится своим опытом разработки прототипа онлайн lossless аудио плеера.
На сегодняшний день, вряд ли можно кого-то удивить аудио или видео плеером, встроенного непосредственно в веб-страницу. Существующие технологии, библиотеки и API позволяют легко наполнить сайт любым медиа-контентом. Но есть такие люди, которым этого недостаточно (в том числе я). Именно поэтому, как истинному любителю музыки в lossless, мне потребовалось сделать браузерный плеер поддерживающий такой формат аудио, как flac.
К этой идее меня подтолкнула одна статья: Web плеер FLAC.JS (HTML5). Узнав, что есть такой замечательный фреймворк как Aurora.js и декодер формата flac для него, я не смог просто пройти мимо всего этого. Все — подумал я — теперь, когда мой уровень энтузиазма зашкалил, я должен сделать этот плеер. Итак, начнем…
Бекенд
В качестве бекенда у нас будет выступать небезызвестные Nginx и Apache c PHP (куда же без него). Первый будет отвечать за отдачу аудио данных, второй будет выдавать страницу с плеером и обрабатывать запросы Ajax.
Фронтенд
Первым делом нужно продумать весь функционал, который будет поддерживать наш плеер. Самое очевидное это Play/Pause, Next, Prev, полоса буферизации и поиска, громкость, строка названия трека и время. Также хотелось бы реализовать отображение обложки альбомов, плейлисты, поиск по базе аудиотеки и так далее, но я решил пока остановиться на самом основном. Так как с веб-разработкой я сталкивался не часто, то с версткой и дизайном у меня, мягко говоря, не очень.
Вот что у меня получилось в итоге:
Отлично. Необходимый минимум у нас есть. Теперь нужно все это оживить. Поэтому переходим к JavaScript.
Создадим класс Playlist который, как вы уже поняли, будет отвечать за список воспроизведения:
Где list — сам список, current — номер текущего трека, repeatmode — режим повтора (0 — без повтора, 1 — повтор всего списка, 2 — повтор одного трека).
Далее реализовываем все необходимые методы.
И напоследок метод перемешивания списка:
Плейлист у нас есть, переходим к самому плееру. Создадим класс Musica:
В params мы разместим все элементы интерфейса с помощью селекторов JQuery, по переменной pstate мы будем определять состояние плеера (воспроизводит/не воспроизводит), seekstate нам пригодится, когда мы будем реализовывать полосу поиска, а timetype определяет тип таймера (сколько прошло или сколько осталось). Также в этом конструкторе мы сразу повесили обработчики событий на все имеющиеся кнопки.
Фреймворк Aurora.js содержит класс Player, который реализует весь необходимый нам минимум. В нем есть такие методы как play(), pause(), stop(), seek(), а также реализован обработчик событий. Это сильно упрощает нам задачу.
Попробуем реализовать метод инициализации плеера:
Здесь мы загружаем в фреймворк текущий трек из списка воспроизведения, сбрасываем графический интерфейс на значения по умолчанию и подключаем обработчики событий. Этот метод мы будем вызывать каждый раз, когда нам нужно воспроизвести новый трек.
Теперь нам нужно сделать, на мой взгляд, самое сложное: полосу поиска и регулятор громкости. Эти два элемента интерфейса очень похожи между собой (по крайней мере в нашем случае).
Сначала мы подключаем обработчик события mousedown. После этого мы меняем значение progressbar и подключаем еще два обработчика. В первом (mousemove) мы также меняем значение progressbar. Во втором (mouseup) мы отключаем эти два обработчика и вызываем метод фреймворка seek(). Для того, чтобы во время поиска мышкой, progressbar не дергался от события progress, которое мы обрабатываем выше, нам нужен seekstate.
Почти таким же способом делаем регулятор громкости:
Плеер почти готов. Нам только осталось добавить методы play(), netxt(), prev(). В их реализации нет ничего сложного:
Источник статьи: http://habr.com/ru/post/235741/
Воспроизведение звука в Java
Введение
Воспроизведение звука
Тут всё более-менее просто. Импортируем javax.sound.sampled и поехали:
Регулятор громкости
Поигравшись со звуками, вы наверняка захотите иметь возможность программно изменять громкость звука. Java Sound API предоставляет такую возможность с фирменной кривотой.
Этот код нужно поместить между строчками clip.open(ais) и clip.setFramePosition(0).
Упрощаем процесс
Ну и наконец, чтобы вы не мучились, выкладываю класс для проигрывания звуков
Пользоваться очень просто, например:
Форматы
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.
Похожие публикации
Java XML API: выбираем правильно. StAX: работаем с удовольствием
Java Stream API: что делает хорошо, а что не очень
Шпаргалка Java программиста 4. Java Stream API
Средняя зарплата в IT
AdBlock похитил этот баннер, но баннеры не зубы — отрастут
Комментарии 7
Всю жизь пользовался этим:
Clip clip = Applet.newAudioClip( url );
clip.play();
От джавы больше не требовалось.
На линуксе джава работает со звуком отвратительно. Использует старый OSS, поэтому паралельно два клипа не звучат. Каждый раз при проигрывании открывает OSS-порт. Иногда оставляет открытым, и звуки вообще перестают звучать. Единственная штука, которая работала нормально — это java media framework. Но этот проект уже over 10 лет как в дауне.
Источник статьи: http://habr.com/ru/post/191422/
MnogoBlog
как создать сайт на wordpress, настроить и оптимизировать wordpress
Android Studio: Создаем простой аудиоплеер (AudioPlayer)
Здравствуйте, давайте создадим Аудиоплеер для Android устройств на бесплатной программе – Android Studio.
Скачать исходники для статьи можно ниже
Для начала создадим простой Аудиоплеер, а потом будем постепенно его усложнять, но более сложные буду описывать в следующих статьях!
Создадим вот такой простой Аудиоплеер:
Простой двухкнопочный аудиоплеер!
1. Создаем новый проект в Android Studio:
Я выбрал платформу Android 4.0 – для того чтобы наше будущее приложение запускалось на версиях Андроида – Android 4.0+
Выбираем шаблон Empty Activity (Пустое Активити):
Далее оставляем все по умолчанию:
2. Редактируем файл activity_main.xml
Переходим в папку res, в ней в подпапку layout и жмем на файл – activity_main.xml, далее открываем вкладку Text (Текст):
И здесь добавляем две кнопки и текст “Аудиоплеер”, вот такой код файла activity_main.xml у меня получился:
Если перейти на вкладку “Design” (Дизайн) увидим как будет выглядеть наше будущее приложение:
3. Редактируем файл MainActivity
Далее переходим в файл MainActivity:
Заменяем код на следующий:
Здесь в 21 строчке мы указали на имя аудиофайла, в данном примере – это mymusic.
4. Загружаем аудиофайл.
Осталось загрузить аудиофайл, для этого нужно создать папку raw и загрузить в неё какой-нибудь mp3 файл с именем mymusic.
Для этого наводим курсор мыши на папку res и кликаем правой кнопкой мыши, открывается менюшка – выбираем в ней пункт New, и подпункт Directory – и создаем новую папочку с именем raw:
И у нас появилась новая папочка raw – наводим на неё курсор мышки и кликаем правой кнопкой, открывается меню – выбираем в ней пункт Show in Explorer:
после чего у нас откроется папочка, в которой заходим в папку raw и закачиваем туда mp3 с названием mymusic – можете скачать данный файл с моего сайта!
5. Создаем apk файл.
Теперь нам нужно создать apk файл для загрузки на Android устройства – для этого выбираем в верхнем меню пункт “Build”, подпункт “Build Apk”
Через некоторое время появится вот такое сообщение справа вверху:
Жмем на ссылку и у нас открывается папочка с apk файлом по имени
app-debug.apk
Можете переименовать файл, например в mypleer.apk и загрузить к себе на смартфон, установить и запустить приложение.
На этом все классных вам Android приложений!
Похожие записи:
Android Studio: Создаем простой аудиоплеер (AudioPlayer) : 3 комментария
Здравствуйте, сегодня пробовал создать приложение в AndroidStudia mp3 проигрователь
Сделал всё по инструкции и выдало много ошибок. Если у вас есть возможность помочь решить возникшие ошибки буду премного Благодарен!
Добавил PS в конце статьи – может поможет.
у меня все работает но хотелось более обстоятельную статью по всему функционалу класса MediaPlayer и MediaRecords.
Источник статьи: http://mnogoblog.ru/android-studio-pishem-prostoj-audiopleer-audioplayer