| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > Разработка караоке |
| Автор: 123qw 29.12.2010, 00:57 |
| Есть приложение на java с использованием swing. Требуется добавить к этому приложению модуль реализующий караоке. Место на форме и панель, куда будет выводиться текст уже имеется. У меня только одна идея: 1) замерять длительность каждого слова 2) выводить в одном потоке непосредственно песню 3) в другом потоке выводить текст, хотя бы по словам, причем устанавливать принудительную задержку в соответствии с длительностью каждого слова Но в песне может содержаться 100 слов и более, поэтому это слишком затратный метод решения проблемы. Есть ли для java уже разработанные библиотеки для такой надобности? Думаю, что кто-то уже сталкивался с нечто подобным и может посоветовать в какую сторону посмотреть |
| Автор: mgarin 29.12.2010, 03:13 |
| Либо у вас в наличии есть нарезка песни в mp3 (или еще в чем) по словам, либо вам придется создавать все задержки для каждого слова и их длительности самому. Есть третий вариант, конечно, - написать свой мега-супер парсер для выцепливания слов из звука... Кхм, думаю стоит забыть о 3ем варианте - слишком затратно. Серьезно говоря - лучшим вариантом мне видится - для каждой песни иметь 1 файл типа "name.mp3" и 1 "name.timing" (или что-то типа). Соответственно во 2ой файл сами нарезаете песню как вам удобней хранить такие данные, как вариант (честно, придумал на ходу): 0-5000 I 5001-6000 Love you! {break} 6001-10000 Soooo 10001-12000 much! Собственно, первый промежуток указывает тайминг (и из него также получается скорость показа слов на экране) и далее текст. Самый простой вариант... Ну и {break} как вариант для обозначения следующей фразы или тому подобного. Далее дело техники - воспроизводите песню и параллельно показываете текст учитывая тайминги из файла P.S. Вероятно, конечно, я изобретаю велосипед... Думаю подобные форматы файлов с таймингами под караоке уже давно существуют, нужно лишь поискать Добавлено @ 03:16 P.P.S. 1ая же ссылка из google вывела на что-то эдакое, похожее (судя по всему приложение для удобного создания тайминг файлов): http://docs.aegisub.org/manual/Karaoke_Timing_Tutorial Но это так... в догонку |
| Автор: 123qw 29.12.2010, 04:19 |
| я так и думал сделать, но это довольно муторно, хочется более общего решения, типа нашел песню в формате караоке, или привел ее к такому формату с помощью какой-нибудь программы, и потом отобразил ее в программе, только как работать с данным форматом я не знаю |
| Автор: techmax 29.12.2010, 04:38 |
| Найти песни в формате для караоке. и потом распарсить этот файл. В них наверное уже предусмотрены все тайминги и т.п. Вот кстати есть реализация http://sourceforge.net/projects/plarpebu/ |
| Автор: mgarin 29.12.2010, 12:35 |
| Как вариант еще, можете поискать фильмы с нужными песнями и вырезать оттуда из субтитров тайминги, если там под песни есть тексты А вообще, если и есть готовое решение, то вряд ли оно бесплатное. Во-первых, сами песни не бесплатные, если уж о том говорить (ну по большей части, не думаю что у вас что-то экстравагантное будет) Во-вторых, в любом случае если это уже кто-то сделал, то это заняло кучу времени и ресурсов и врядли он(они) распространяют все это во free доступе |
| Автор: 123qw 30.12.2010, 01:14 |
| нашел видео файл с нужным мне караоке, думаю использовать его, вот только как попросить java воспроизводить такие файлы я не знаю, если кто знает, пожалуйста дайте пример, или хотя бы ткните носом в ссылку, сам я что-то не могу найти |
| Автор: 123qw 30.12.2010, 03:52 |
| на ютьбе нашел именно ролик с караоке, который мне нужен, его хочу использовать, т.е. получится, что у меня часть программы будет обычным видеопроигрывателем, вот только не могу найти толкового примера реализации видеопроигрывателя в java |
| Автор: mgarin 30.12.2010, 10:40 |
| Мне только интересно, как вы с ютуба скачаете ролик, а тем более его субтитры (если вы их собираетесь использовать, конечно) Видео проигрыватель тут уже отходит на 2ой план... |
| Автор: 123qw 30.12.2010, 11:02 |
| тащу из кеша, а субтитры вшиты в кадры, поэтому получается, что задача сводится к встраиванию в мое приложение видеопроигрывателя |
| Автор: mgarin 30.12.2010, 12:13 |
| Нормальных кросс-платформенных решений особо нет. Подчеркиваю нормальных Тот же JMF от разработчика никто не отменял, но ни одно современное видео (по крайней мере сколько я ни пробовал вариантов) он не может воспроизвести. Можете посмотреть насчет него, скажем, тут: http://www.deitel.com/articles/java_tutorials/20060422/PlayingVideowithJMF/ Там же есть ссылка на скачивание Соответственно помимо этого остаются нативные решения, как в случаях со встраиванием браузеров Вот, например: http://djproject.sourceforge.net Там есть возможности встраивания WMP или VLC плееров. Далее все будет зависеть от них - есть ли на системе, есть ли нужные кодеки под видео и т.д. |
| Автор: jk1 31.12.2010, 14:54 |
| 123qw, Правила форума: http://forum.vingrad.ru/index.php?act=boardrules Одна тема - один вопрос |