• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

ActionScript operations -- using rm.callAS("multimedia_seek"), or any other rm.callAS

Explorer ,
Feb 20, 2020 Feb 20, 2020

Copy link to clipboard

Copied

 

I am reviewing the Adobe site - "Learning ActionScript 3", as well as many other resources.  It seems I am far from fluent in ActionScript, so I turn to this Forum, as well.

 

I am keenly familiar with Multimedia Operations, but managed principally via the GUI-thingy [e.g. Button Properties Actions tab].  Now I seek to manage those ActionScript calls via JavaScript.

 

1). In the attached example file, I successfully call a pair of RMAs via rm.callAS:

 

var aRM = this.getAnnotsRichMedia(0); // var used to ID any Clip on first page (PDF document page# minus 1)
//
var rm = aRM[0]; // get rich media annot for First Clip [RM List Position# minus 1]
//
if ( !rm.activated ) rm.activated=true; // activate the RMA 
rm.callAS("multimedia_play"); // play First Clip
//
var rm = aRM[1]; // get rich media annot for Second Clip [[RM List Position# minus 1]
//
if ( !rm.activated ) rm.activated=true; // activate the RMA 
//
// IT IS DESIRED TO WAIT N MILLISECONDS BEFORE PROCEEDING, But attempts using setTimeOut have not succeeded, so here, Second Clip begins to play, in unison with First Clip
//
rm.callAS("multimedia_play"); // play Second Clip

 

The two clips play simultaneously.

 

The comment in CAPS refers to attepts made in another Forum post of mine.  I've been unable to achieve a delay for the second rm.callAS.

 

– – –

 

2). Also, using a separate button in the attached example file, I aim for an RMA to seek to a timepoint, at which to begin playing the clip:

 

var aRM = this.getAnnotsRichMedia(0); // var used to ID any Clip on first page (PDF document page# minus 1)
//
var rm = aRM[1]; // get rich media annot for Second Clip [RM List Position# minus 1]
//
if ( !rm.activated ) rm.activated=true; // activate the RMA 
rm.callAS("multimedia_seek", (6)); // seek to 6.0 seconds in Second Clip
rm.callAS("multimedia_play"); // play Second Clip, beginning at 6.0 seconds

 

 

The result is most puzzling.  One will note that the Seek button does in fact cause the clip to initiate playing at a timepoint after 0.0 sec., but not close to 6.0 sec.

  • it is on the order of ~1.8 sec.
  • it is, for each use of that button, always precisely the same timepoint [not random]

 

I believe when I get a grip on this, I'll be able to beneficially apply the callAS libray, much of which I'm aware.

 

Commentary invited.

 

TOPICS
Acrobat SDK and JavaScript

Views

676

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 20, 2020 Feb 20, 2020

Copy link to clipboard

Copied

You do know that Flash is not long for this world? 

Thom Parker - Software Developer at PDFScripting
Use the Acrobat JavaScript Reference early and often

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 20, 2020 Feb 20, 2020

Copy link to clipboard

Copied

 

A complicated subject; not a simple answer; happy to address as a side topic.

 

I am fully aware of its long-ago-announced 'software EOL'.  That is not synonymous with evaporation.  My interest is development of expressive forms [cognitive spaces] for which there is no anywhere-near-close alternative.  Don't be misled by this grossly oversimplified test instance.  The objective goes way beyond some 'Your Friendly PGA on Youtube' folly. 

 

Your warning, as cautionary advice, is relevant, well-taken, and appreciated.  And do chime in if you've you've got a scripting pointer.

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Feb 26, 2020 Feb 26, 2020

Copy link to clipboard

Copied

Multimedia_seek on video tells the embedded player to jump to the nearest keyframe for the specified time offset. How close it gets to the target depends on the keyframe intervals in your media files. As you've discovered the seek will always be consistent, but unless you craft a very carefully encoded media file with markers at the target points it will not be frame-accurate.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Feb 26, 2020 Feb 26, 2020

Copy link to clipboard

Copied

LATEST

 

Yes, I've found to what timepoint the clip in the attached file was seeking.  That ~1.8 seconds timepoint I cite, is a camera-cut scene-change, in the original TV broadcast.

 

New readers of this topic can find more in this post,

                   and a solution, of sorts [pick your encoder], in this post.

 

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines