91 lines
3.4 KiB
HTML
91 lines
3.4 KiB
HTML
|
|
<html>
|
|
<head>
|
|
<!-- LayoutTests location is hard-coded to avoid duplication of code. -->
|
|
<script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/media-file.js"></script>
|
|
<script src="http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/video-test.js"></script>
|
|
|
|
<script>
|
|
var expectedRates = { "defaultPlaybackRate" : 1, "playbackRate" : 1};
|
|
var playingFromScript = false;
|
|
var changedRate = false;
|
|
|
|
function absoluteUrl(url)
|
|
{
|
|
var a = document.createElement('a');
|
|
a.href = url;
|
|
return a.href;
|
|
}
|
|
|
|
function testRates()
|
|
{
|
|
consoleWrite("");
|
|
var playWithControllerButton = !changedRate && !playingFromScript;
|
|
testExpected("video.playbackRate", playWithControllerButton ? expectedRates['defaultPlaybackRate'] : expectedRates['playbackRate']);
|
|
testExpected("video.defaultPlaybackRate", expectedRates['defaultPlaybackRate']);
|
|
changedRate = false;
|
|
}
|
|
|
|
function playing()
|
|
{
|
|
consoleWrite("<br>'playing' event");
|
|
expectedRates['playbackRate'] = playingFromScript ? video.playbackRate : video.defaultPlaybackRate;
|
|
testRates();
|
|
playingFromScript = false;
|
|
}
|
|
|
|
function ratechange()
|
|
{
|
|
consoleWrite("<br>'ratechange' event");
|
|
testRates();
|
|
}
|
|
|
|
function start()
|
|
{
|
|
findMediaElement();
|
|
video.addEventListener('ratechange', ratechange);
|
|
video.addEventListener('playing', playing);
|
|
|
|
// Use the video file from the svn repository to avoid duplicating the file.
|
|
video.src = absoluteUrl(findMediaFile('video', 'http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/content/test'));
|
|
testRates();
|
|
}
|
|
|
|
function play()
|
|
{
|
|
playingFromScript = true;
|
|
video.play();
|
|
}
|
|
|
|
function setRate(which, rate)
|
|
{
|
|
changedRate = true;
|
|
video[which] = rate;
|
|
expectedRates[which] = rate;
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="start()">
|
|
|
|
<video controls > </video>
|
|
<ul>
|
|
<li>The current 'playbackRate' and 'defaultPlaybackRate' should be logged every time either changes.</li>
|
|
<li>'playbackRate' should be set to 'defaultPlaybackRate' when the Play button in the built-in controls is pressed</li>
|
|
<li>'playbackRate' should NOT when play() is called from script.</li>
|
|
</ul>
|
|
<div>
|
|
<button id="controls" onclick="setRate('defaultPlaybackRate', 2)">defaultPlaybackRate = 2</button>
|
|
<button id="controls" onclick="setRate('defaultPlaybackRate', 1)">defaultPlaybackRate = 1</button>
|
|
<button id="controls" onclick="setRate('playbackRate', 2)">playbackRate = 2</button>
|
|
<button id="controls" onclick="setRate('playbackRate', 1)">playbackRate = 1</button>
|
|
</div>
|
|
<div>
|
|
<button id="controls" onclick="play()">play()</button>
|
|
<button id="controls" onclick="video.pause()">pause()</button>
|
|
</div>
|
|
<br>
|
|
</body>
|
|
</html>
|