/** Test for Bug 778077 - HTMLMediaElement.fastSeek() **/
// Iterate through a list of keyframe timestamps, and seek to
// halfway between the keyframe and the keyframe after it. var manager = new MediaTestManager;
function doSeek(v) {
// fastSeek to half way between this keyframe and the next, or if this is the last
// keyframe seek to halfway between this keyframe and the end of media. var nextKeyFrame = (v.keyframeIndex + 1) < v.keyframes.length ? v.keyframes[v.keyframeIndex + 1] : v.duration;
v.target = (v.keyframes[v.keyframeIndex] + nextKeyFrame) / 2;
v.fastSeek(v.target);
ok(Math.abs(v.currentTime - v.target) < 0.01,
v.name + " seekTo=" + v.target + " currentTime (" + v.currentTime + ") should be close to seek target initially");
}
function onloadedmetadata(event) { var v = event.target;
doSeek(v);
}
function onseeked(event) { var v = event.target; var keyframe = v.keyframes[v.keyframeIndex];
// Check that the current time ended up roughly after the keyframe.
// We must be a bit fuzzy here, as the decoder backend may actually
// seek to the audio sample prior to the keyframe.
ok(v.currentTime >= keyframe - 0.05,
v.name + " seekTo=" + v.target + " currentTime (" + v.currentTime + ") should be end up roughly after keyframe (" + keyframe + ") after fastSeek");
ok(v.currentTime <= v.target,
v.name + " seekTo=" + v.target + " currentTime (" + v.currentTime + ") should be end up less than target after fastSeek");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.