I use Windows with many animations in my PDFs, and only Adobe Acrobat (Reader) seems to be able to play them. I've been using AutoHotKey to remap my keyboard buttons to control my two Adobe windows simultaneously. It's a bit of a hack job, and there's no timer, but it works. I use the standard beamer notes pages, but you could be more fancy to show upcoming previews.
Here's my AHK script. It assumes that the focus is on the notes pdf window. [Up]/[Down] controls the notes (window mode on screen one), and [Left]/[Right] controls the presentation (full screen on screen two). [Space] advances both simultaneously by one page. It blocks [Space] in other programs whilst the script's running, but it prevents infinite loops. The script is easily changed to access all open PDFs at once (use 'Adobe' instead of 'Presentation_*.pdf'), but I find it to be more stable if each file is named explicitly.
Up::
IfWinActive, Presentation_Notes.pdf ;
{
Send {PgUp}
}
Else
{
IfWinActive, Presentation_Presentation ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Notes.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgUp}
}
WinActivate, ahk_id %active_id%
}
Else
{
Send {Up}
}
}
return
Down::
IfWinActive, Presentation_Notes.pdf ;
{
Send {PgDn}
}
Else
{
IfWinActive, Presentation_Presentation.pdf ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Notes.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgDn}
}
WinActivate, ahk_id %active_id%
}
Else
{
Send {Down}
}
}
return
Right::
SetTitleMatchMode, 2
IfWinActive, Presentation_Notes.pdf ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Presentation.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgDn}
}
WinActivate, ahk_id %active_id%
}
Else
{
Send {Right}
}
return
Left::
SetTitleMatchMode, 2
IfWinActive, Presentation_Notes.pdf ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Presentation.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgUp}
}
WinActivate, ahk_id %active_id%
}
Else
{
Send {Left}
}
return
Space::
SetTitleMatchMode, 2
IfWinActive, Presentation_Notes.pdf ;
{
CoordMode, Mouse, Screen
WinGet, active_id, ID, A
WinGet, id, list, Presentation_Presentation.pdf,, Program Manager
Loop, %id%
{
this_id := id%A_Index%
WinActivate, ahk_id %this_id%
Send {PgDn}
}
WinActivate, ahk_id %active_id%
Send {PgDn}
}
return