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

48 kHz, 16 bit, mono/stereo. Про длину ничего сказать не могу (визуально нет ограничений).
Не более 128 уникальных звуков.
Итоговый размер sound.bdmv не более 2 Мб (по моей оценке это 21 секунда для моно).

Там в конце пропущена одна закрывающая фигурная скобка - можно просто в самом конце UDF_MENU поставить }

Спасибо.
У меня еще вопрос - Как я понимаю sound на кнопке, в том числе и на on select воспроизводится один раз, а sound в меню идет по кругу. Так? А настройки в settings and properties/Set sound FX ON/OFF к чему относятся, к меню или к кнопке? Если к меню, то можно както настроить воспроизведение или нет на кнопке on select?

Audio идет по кругу. Есть еще “Open sound” - он не должен идти по кругу.
Audio - это звук из m2ts. Sound (SFX) - это звук из sound.bdmv.

К звукам кнопок.

Вот это не понял. Есть sound “On select” - проигрывает звук при выборе кнопки.

Я буду проигрывание или нет на on select настраивать с помощью GPR. Мне главное что на on select, как я понял, звук по кругу идет.

@CDK, Вы упоминали что можно показывать номер закладки. Скажите пожалуйста как это сделать, в смысле поподробнее.

Я говорил про название песни у каждой закладки.
Можно и номер, но где и зачем?
Если я правильно понимаю в разделе закладок у Вас нарисован таймлайн и на нем показаны (расположены) текущие закладки. Можно, конечно, показывать над ними цифры 1, 2, 3, …
В студии нельзя создавать объекты динамически, значит у Вас уже должно быть ограничение на число закладок и заранее должны быть подготовлены под них картинки, которые Вы располагаете на таймлайне. Вот прямо на этих картинках вы можете просто номера и написать (вместо одной одинаковой png-картинки использовать соответствующее количество разных png - у каждого букмарка своя картинка с номером).

Вы не правильно понимаете, на таймлинии у меня показаны началы чаптеров, закладки в проекте за пределом экрана и они работают как и положено. Или я Вас не правильно понял?

Подскажите в чем проблема если не затруднит:
У меня на кнопке PLAY в меню стоит switch который в виде скрипта выглядит так:

    int streamId = 0;
    int chapterId = manager.getCurrentChapter();
    int curPlayListID = manager.getPlaylistID();
    boolean canExec = true;
    if (canExec && (manager.getGPR(100)==0)) {
      canExec = false;
      manager.allowSaveState(true);
      manager.setStartPlayMarkResume();
      manager.activateSegment("S:MV_CONCERT.play_movie");
      manager.setGPR(100, 0);
      manager.storeData("GPR100", 0);
    }
    if (canExec && (manager.getGPR(100)==1)) {
      canExec = false;
      manager.allowSaveState(true);
      manager.setStartPlayMarkResume();
      manager.activateSegment("S:РL_Playlist_CONCERT.play_movie");
      manager.setGPR(100, 1);
      manager.storeData("GPR100", 1);
    }

А при выходе из избранного у меня основное это:

    manager.allowSaveState(true);
    manager.setStartPlayMarkResume();
    manager.activateSegment("S:MV_CONCERT.play_movie");
    manager.activateButtonEx("H:РM_EXIT.Handler", "EXIT", false);
    manager.activateSegment("S:РM_EXIT.show_menu");
    manager.setGPR(100, 0);
    manager.storeData("GPR100", 0);

Проблема заключается в том что при заходе из меню воспроизведение начинается с правильного времени, а при выходе из избранного не по времени начинается резюм, а начинается с начала чаптера, но правильного чаптера. Я многое перепробовал - не получается решить проблему.

P.S. Заодно, может быть подскажете - UDF в UDF может находиться?

manager.activateSegment(“S:MV_CONCERT.play_movie”); - переходит в сегмент S:MV_CONCERT.play_movie - это сегмент в котором стоит запуск муви CONCERT

manager.activateSegment(“S:РM_EXIT.show_menu”); - отменяет переход в сегмент S:MV_CONCERT.play_movie и переходит в сегмент S:РM_EXIT.show_menu (показ попап меню EXIT) - в итоге муви может и не запуститься - не успеть - переход то отменили.

зачем Вам второй activateSegment? Если Вы хотите показать попап поверх запущенного видео, то замените
manager.activateSegment(“S:MV_CONCERT.play_movie”);
на
manager.resumeVideoAt(‘CONCERT’);

Возможно это решит проблему. Если нет - пришлите проект целиком и скажите последовательность действий. Судя по коду, при выходе из избранного должен резюмиться муви CONCERT. Так же нужно понимать что время резюма муви CONCERT и плейлиста Playlist_CONCERT разное - у каждого свое.

UDF можно вызывать из UDF.

У меня вопрос, а что, в анимации Clip не поддерживается графика с прозрачностью, например текст в PNG?

Поддерживается. По крайней мере на тестовом демо-меню работает. Но эта анимация сделана “вручную”, поэтому там “могут быть нюансы”.

Я извиняюсь за предыдущий комментарий с вопросом, у меня при копировании затесался одинаковый слой PNG, не обнаружил вовремя потому что он вне поля зрения в окне объектов был. А я почти два дня голову ломал - “Почему у меня ничего не получается?” :D.

Я забыл сказать что все получилось отлично, как я и хотел. Вообще анимация Clip очень классная.

У меня вопрос возник, а что это за анимация такая - Clip? И чем она отличается от обычной анимации? Может кто то сможет объяснить,
а лучше продемонстрировать, чтоб наглядно было понятно. Я давно приглядываюсь к Blu-Disc Studio но пока нет финансовой возможности,
если это действительно так классно как говорят, то возможно затяну по туже пояс и наскребу на программу.

Тип анимации. Есть 4 типа анимации, у всех задается время во фреймах за сколько анимация выполнится:

  1. Fade - исчезание/проявление. Задается прозрачность начальная и конечная.
  2. Slide - перемещение. Задаются координаты начальные и конечные.
  3. Scale - масштабирование. Задается масштаб и якорь (точка от которой масштабировать) начальные и конечные.
  4. Clip - обрезание. Задается прямоугольная область видимой части объекта (начальная и конечная).

Анимация Clip похожа на анимацию Slide, но вместо скольжения/перемещения всей графики, графика в Clip стоит на месте и появляется/исчезает за счет обрезки графики.

Следите за новостями, может когда нибуть такую же скидку сделают как летом.

@CDK, Объясните пожалуйста, вот в мануале написано:
Избегать, черного экрана в конце меню плейлиста/Avoid the black screen at
the end of the menu playlist – опция позволит добавить дополнительный плеймарк в
конце предпоследнего плейэлемента и перезапустить меню плейлиста (следует
использовать команду переход к плеймарку) в этом плеймарке.
Ставлю галочку, делаю мукс, а второй плеймарк не добавляется если судить по MediaInfo файла .mpls. Или просто “меню” и “плейлист меню” это разные вещи? И вообще, где управление плеймарками меню?

Да, странно, отвалился видимо механизм этого дополнительного плеймарка. Сегодня посмотрю.

Хотя нет, вру - все на месте. Это МедиаИнфо глючит, видимо. Чем смотреть это - не подскажу. Наверное BDInfo или нечто подобное. Я проверил КАЙТом.

Управлять самим плейлистами меню в программе нельзя.

За разъяснение конечно же спасибо, в общих чертах я это уже представляю как будет выглядеть, но всё же, хотелось бы воочию это разглядеть.
Если не в тягость, дайте ссылочку или наводку, где такое можно поглядеть, может кто делал ролик с подобного меню, плиз!