Blu-Disc Studio: Создаём меню на Java. часть II

Шлю
Timeline BookmarksBR
Как скачаете скажите.

@Mowny_Devam, Скачал. Спасибо.

Скажите пожалуйста, если очень большие свичи преобразовать в скрипты, то в итоге файл проекта и файл .jar в диске будут весить меньше?
И ещё я заметил, что чем больше меню, тем больше весит файл проекта. Это из-за путей к объектам?

@maks8881, ИМХО, думается вам нужно беспокоится не размерами файлов, а оптимальностью проекта. Сократить количество действий, до необходимого.
Прежде всего нужно хорошо подумать насколько уместна, та или иная команда.
И далее, в частности, вместо того чтобы применять клипинг к куче отдельных объектов — линковать их, насколько это возможно, в один суммарный и подрезать его.
И т.п.

У нас куча вариантов, нужно выбрать оптимальный.

*** Добавлено ***

Помнится CDK говорил что много графики на одной странице подтормаживает работу меню, а если судить по референсным проектам упор делается на программную часть при минимуме страниц. Значит нужно искать золотую середину, ну а если совместимость с максимальным числом моделей плееров не нужна, можно выбрать то, с чем ваш плеер работает лучше и на ваш взгляд будет оптимальнее.

Нет

Нет. Это из-за количества объектов и меню. На каждое меню создается по несколько сегментов, на каждую анимацию свой сегмент и т.п.

1 лайк

Скажите пожалуйста что значит ошибка;

[state] Compiling: step 3…
InactivityListener_CallBack.java:25: code too large
public void notifyInactivity(Show show) {
^
1 error

[состояние] Компиляция: шаг 3 …
InactivityListener_CallBack.java:25: слишком большой код
Public void notifyInactivity (Показать показать) {
^
1 ошибка

и что мне делать?

В Java есть ограничение на размер метода (функции) https://stackoverflow.com/a/2408005
Видимо Вы его привысили.

@CDK, Если я заменю очень большие свичи на UDF, которые уже есть, это поможет?

Да, получилось избежать ошибки таким образом.

У меня другой вопрос: на данный момент у меня TOTAL: 23066, а при 50000 в Java Profile 2 начинаются проблемы. А диск ещё не совсем готов. Стоит ли мне установить Java Profile 2, вместо Java Profile 1?

Да, BD-J profile version можно поставить 2.

Пробовал применить очистку GPR применив скриптик

manager.clearGPR();

но как сохранить очистку я не знаю. Пробовал добавить

manager.saveStorage();

но всё равно при новом запуске диска очистка не сохраняется. Подскажите пожалуйста как сделать очистку GPR, чтобы это сохранилось при новом запуске диска.

Честно говоря не очень понимаю что там не работает. Смотрите лог или присылайте проект.

Здравствуйте. Хочу сделать как в диске “Avatar”, чтобы при переключении аудио или субтитров кнопкой пульта, показывалось маленькое попап с названием языка аудио или субтитров. Даже мыслей нет какой свич применить. Направьте меня пожалуйста на правильный путь.

Можно мониторить переключение в “Action every second” и дальше через экшен Settings and properties -> Set object properties показывать и скрывать картинку на экране.

Если честно, не совсем понял. За пределы экрана вывести картинку, а при переключении выводить на экран? А свич, например для аудио, какой применить?

Как вариант.

Перед запуском видео сохранять, например, в GPR текущее значение аудио. В AES смотреть равно ли оно значению GPR и если нет, то зписывать текущее в GPR и выводить картинку.
А дальше все сложно. Вам нужно через какое-то время скрыть эту картинку. Я вижу только такой вариант: AES выполняется раз в секунду, значит можно его использовать как таймер. После вывода картинки в какой-то GPR пишем число 5. В AES проверяем этот GPR и если он больше 1 - уменьшаем его на 1. Если равен 1 - записываем в него 0 и скрываем картинку.

Спасибо. Буду вникать и разбираться.

Из того что я понял, я установил скрипт в Start action фильма

    manager.getCurrentAudioID();
    manager.setGPR(20, 1);

сделал скрипт из этого свича

if Audio in Movie = 1 –> [MA]: Popup: Audio [English]; [set]: GPR[20] = 1
if Audio in Movie = 2 –> [MA]: Popup: Audio [22]; [set]: GPR[20] = 1
if Audio in Movie = 3 –> [MA]: Popup: Audio [Nosferatu13fd]; [set]: GPR[20] = 1
if Audio in Movie = 4 –> [MA]: Popup: Audio [New_Records]; [set]: GPR[20] = 1
if Audio in Movie = 5 –> [MA]: Popup: Audio [Anidub]; [set]: GPR[20] = 1

и поместил этот скрипт в свич, который в AES фильма

if [GPR(20)!=1] –> [Script]

но всё это не работает. Других идей у меня нет. Что я не понял или сделал не так?

@maks8881, получается у вас GPR(20) всегда равен 1, потому и не работает.

if [GPR(20)!=1] –> [Script]
присмотритесь внимательно.