(My Environment: cms: 2.3.4, player: dotnetplayer 254.1)
Hello.
As the title suggests, if you do not expire the modified layout, internally, some exceptions are caught and a splash screen is displayed.
(1)
The triggering method is “ScheduleManager - LoadNewSchedule” which does not check the validity of the currently playing layout.
(2)
The root cause is that the SetRequiredFiles method in the RequiredFiles class deletes the modified layout as a “Delete the old file as it is wrong” in the process of creating the download list (From RequiredFiles.xml).
(3)
As a result , a blank period where xlf does not exist for the modified layout is happen.
The point is:
If the following three conditions (①, ②, ③) are met, this topic’s event will occur.
① The current layout has been changed.
② The current layout cycle ends before the download of the new xlf and its dependencies is complete.
③ There is no other layout for the next appointment (So I repeat myself again.), or all of the layouts for the next appointment are disabled.
Because the above (1) makes a layout that doesn’t have xlf valid, the player tries to find it, but the file doesn’t exist.
This results in two exceptions ((a) and (b)):.
(a)
Layout Preparation Failed Exception (xlf not found)
[UI Thread] MainForm-PrepareLayout IOException: System.IO.FileNotFoundException:
(b)
Exceptions that the layout you plan to view next cannot be changed (Occurs due to previously described NotFound)
[UI Thread] MainForm-ChangeToNextLayout Layout Change to C: \Users \ (username) \Documents \XiboClient Library (layoutId) .xlf failed.
I think that some users like me, who use a layout that changes dynamically, turn off the expiration setting in order to avoid the interruption of the running layout (new stuff pops up when the download is complete).
[Related topics]
I avoid this by “Do not delete and overwrite xlf so it does not create a blank period”.
The work is simple: if you have xlf in SetRequiredFiles (), it won’t delete it even if it changes.
■before
■after
Because xlf always loads dependencies first, playing a new xlf will not cause an error.
The only concern is that old xlf dependencies will be out of control and will be removed by the libraryAgent.
However, by default, there is a 2-day grace period for removal, during which time the new xlf dependencies should have been downloaded.
I look forward to your comment.