3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
||||||
1 | ||||||
Работа с MediaPlayer в JavaFX17.07.2013, 18:57. Показов 7389. Ответов 20
Метки нет (Все метки)
создаю первый в своей жизни медиаплеер с использованием JavaFX? столкнулся с проблемой утечки потоков. при выполнении кода:
первый - JFXMedia Player EventQueueThread второй - просто имеет порядковый номер (Thread-2). после окончания воспроизведения первого файла оба потока остаются живыми. При переходе к воспроизведению следующего файла из плэйлиста, создаются еще 2 потока и т.д. Как остановить ненужные больше потоки?
0
|
17.07.2013, 18:57 | |
Ответы с готовыми решениями:
20
Работа с JavaFX и ее потоком Работа с элементами JavaFX JavaFX. Самое первое задание в JavaFX вместо Java. Не используя вспомогательных объектов Swing --> JavaFX, Переписать графический компонент в JavaFX |
1 / 1 / 0
Регистрация: 12.06.2013
Сообщений: 18
|
|
22.07.2013, 13:04 | 2 |
Цепляеш на любое условие(на закрытие окна например)
thread_name.stop();
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
22.07.2013, 13:06 [ТС] | 3 |
так не работает, причем второй поток который создается с произвольным именем, я так не поймаю, ведь я не знаю кокой номер ему присвоится в следующий раз
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
22.07.2013, 17:47 [ТС] | 5 |
мне праллельное воспроизведение не нужно, просто у mediaplayer нет метода, который бы мог заменить закончившийся медиафайл на следующий, и поэтому приходится каждый раз создавать новый экземпляр плеера, что в свою очередь приводит к созданию лишних потоков., еслибы я знал как можно по новой использовать уже имеющийся объект, прооблема бы решилась. если кто знает напишите пожалуйста.
Добавлено через 1 час 16 минут так не работает, причем второй поток который создается с произвольным именем, я так не поймаю, ведь я не знаю кокой номер ему присвоится в следующий раз Добавлено через 2 часа 3 минуты мне праллельное воспроизведение не нужно, просто у mediaplayer нет метода, который бы мог заменить закончившийся медиафайл на следующий, и поэтому приходится каждый раз создавать новый экземпляр плеера, что в свою очередь приводит к созданию лишних потоков., еслибы я знал как можно по новой использовать уже имеющийся объект, прооблема бы решилась. если кто знает напишите пожалуйста.
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
22.07.2013, 18:28 [ТС] | 7 |
я так и делаю, перед созданием нового плеера, старый в null загоняю, но это не помогает. если кто-нибудь сможет помочь и посмотреть код, тогда я кину его
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|||||||||||||||||||||
23.07.2013, 08:53 [ТС] | 9 | ||||||||||||||||||||
Главный класс
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
23.07.2013, 09:06 [ТС] | 10 |
вот вся папка с проектом
0
|
23.07.2013, 23:56 | 11 |
протестировал, всё ок, потоки висят в кеше примерно по 3-4 штуки если наплодить 20-30 и потом вызвать GC они опять снижаются до 3-4 поэтому нет проблем, просто зануляйте медиа и плер по стопу
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
24.07.2013, 07:27 [ТС] | 12 |
у меня доходило до 60 потоков ( и простите меня за безграмотность, а что такое GC, я просто только начинаю изучение и многих сокращений еще не знаю.
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
24.07.2013, 11:16 [ТС] | 14 |
спасибо огромное, я уже плей лист доделал, теперь все нормально отображается, теперь бы еще разобраться как длительность файла узнать до его воспроизведения(в момент добавления в коллекцию), вообще красота была бы )), а то далеко не все файлы содержат в метаданных эту информацию
Добавлено через 51 минуту похоже прийдется, у меня сейчас висит 40 левых потоков и оперативку они хавают прилично, при создании нового потока каждый раз память потребляемая приложением +3-4МБ, таким образом никакой оперативки не хватит (если стоит плейлист на 500 песен да еще и repeat включить или просто нажимать следующий или предыдущий трек) (((, расскажите как принудительно вызвать GC.
0
|
24.07.2013, 12:17 | 15 | |||||
если при запуске JVM нет ключей вырубающих ручной gc, то всё прогсто
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
24.07.2013, 15:04 [ТС] | 16 |
попробовал запускать GC но воз и ныне там, потоки плодятся и не убиваются ((( есть еще идеи, как остановить вакханалию с потоками? (для сравнени kmplayer при воспроизведении тогоже объема медиа жрет всего 12 МБ оперативки, а мое чудо на 10 песне уже 120 МБ оперативки)
0
|
24.07.2013, 18:37 | 17 |
я вам уже всё что нужно сообщил, зануляйте переменные и не лазьте в gc, JVM разберётся с памятью
по stop вызывается destroy этих потоков, они умирают если на них нет ссылок, ищите где у вас виснут ссылки
0
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
28.07.2013, 19:58 [ТС] | 18 |
Господа, подскажите как поставить свою иконку на окно созданое в JavaFX(иконка которая возле title висит)
0
|
любитель покушать
687 / 641 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
|
||||||
28.07.2013, 20:57 | 19 | |||||
ill_via,
1
|
3 / 3 / 0
Регистрация: 05.06.2013
Сообщений: 16
|
|
28.07.2013, 21:27 [ТС] | 20 |
спасибо большое!!!
0
|
28.07.2013, 21:27 | |
28.07.2013, 21:27 | |
Помогаю со студенческими работами здесь
20
JavaFX - Работа с JDBC + GUI + Table. Данные в таблице не отображаются Отобразить javafx.scene.image.Image в javafx.scene.layout.GridPane Работа с mediaplayer Работа с fragments и MediaPlayer Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |