14.12. Fast-Forwarding and Rewinding a Net Stream

Problem

You want to fast-forward or rewind (also called seeking) a net stream.

Solution

Use the NetStream.seek( ) method.

Discussion

You can fast-forward or rewind to any point within a net stream using the NetStream.seek( ) method. This method requires you to specify the number of seconds from the beginning of the net stream to which to seek. For example, to return to the beginning of a net stream, you can use the value 0:

// Return to the beginning of a net stream.
myNetStream.seek(0);

The preceding technique seeks to an absolute position within the stream. However, if you want to seek to a position relative to the current playback position, such as five seconds forward or backward, add or subtract the number of seconds from the net stream’s time property (which returns the current playback time in seconds from the beginning of the net stream):

// Seek six seconds ahead of the current time.
myNetStream.seek(myNetStream.time + 6);

Also, stream data may not contain keyframes at every frame, and the seek( ) method can seek only to a keyframe. Therefore, by default, the seek( ) method moves to the keyframe that is nearest to the frame you specify. For example, if you instruct a net stream to seek to 12 seconds, but the two nearest keyframes are at 10 and 15 seconds, the net stream seeks to 10 seconds. If you need more precision, you can adjust the Application.xml file, which is found in a subdirectory of the FlashCom installation (such ...

Get Actionscript Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.