I am playing back local video in an AIR application using the Spark Video Component. Using the seek method does not provide accurate positioning as per its description:
The playheadTime property might not
have the expected value immediately
after you call seek(). For a
progressive download, you can seek
only to a keyframe; therefore, a seek
takes you to the time of the first
keyframe after the specified time.Note: When streaming, a seek always
goes to the precise specified time
even if the source FLV file doesn’t
have a keyframe there.
It appears that the video component treats local playback as a progressive download, making the seek method not usable for granular seeking because it snaps to keyframes. Is there a way to have local playback that is treated as streamed video to get the granular seeking ability from the seek() method? Or will this desired functionality require a different video component?
It is not the video playback component but the actual media. When you seek a precise time with streamed video, then the media server will create the required keyframe in the stream. By encoding your video with more keyframes you can increase the accuracy of the seek, but at the cost of the file size (which I assume isn’t an issue for you)