add media state check
This commit is contained in:
@@ -152,6 +152,16 @@ function buildNode(
|
|||||||
if (name === 'rr_height') {
|
if (name === 'rr_height') {
|
||||||
(node as HTMLElement).style.height = value;
|
(node as HTMLElement).style.height = value;
|
||||||
}
|
}
|
||||||
|
if (name === 'rr_mediaState') {
|
||||||
|
switch (value) {
|
||||||
|
case 'played':
|
||||||
|
(node as HTMLMediaElement).play();
|
||||||
|
case 'paused':
|
||||||
|
(node as HTMLMediaElement).pause();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return node;
|
return node;
|
||||||
|
|||||||
@@ -253,6 +253,12 @@ function serializeNode(
|
|||||||
if (tagName === 'canvas') {
|
if (tagName === 'canvas') {
|
||||||
attributes.rr_dataURL = (n as HTMLCanvasElement).toDataURL();
|
attributes.rr_dataURL = (n as HTMLCanvasElement).toDataURL();
|
||||||
}
|
}
|
||||||
|
// media elements
|
||||||
|
if (tagName === 'audio' || tagName === 'video') {
|
||||||
|
attributes.rr_mediaState = (n as HTMLMediaElement).paused
|
||||||
|
? 'paused'
|
||||||
|
: 'played';
|
||||||
|
}
|
||||||
if (needBlock) {
|
if (needBlock) {
|
||||||
const { width, height } = (n as HTMLElement).getBoundingClientRect();
|
const { width, height } = (n as HTMLElement).getBoundingClientRect();
|
||||||
attributes.rr_width = `${width}px`;
|
attributes.rr_width = `${width}px`;
|
||||||
|
|||||||
@@ -197,6 +197,21 @@ exports[`[html file]: picture.html 1`] = `
|
|||||||
</body></html>"
|
</body></html>"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`[html file]: video.html 1`] = `
|
||||||
|
"<!DOCTYPE html><html xmlns=\\"http://www.w3.org/1999/xhtml\\" lang=\\"en\\"><head>
|
||||||
|
<meta charset=\\"UTF-8\\" />
|
||||||
|
<meta name=\\"viewport\\" content=\\"width=device-width, initial-scale=1.0\\" />
|
||||||
|
<meta http-equiv=\\"X-UA-Compatible\\" content=\\"ie=edge\\" />
|
||||||
|
<title>video</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<video controls=\\"\\">
|
||||||
|
<source src=\\"http://techslides.com/demos/sample-videos/small.webm\\" type=\\"video/webm\\" /> <source src=\\"http://techslides.com/demos/sample-videos/small.ogv\\" type=\\"video/ogg\\" />
|
||||||
|
<source src=\\"http://techslides.com/demos/sample-videos/small.mp4\\" type=\\"video/mp4\\" /> <source src=\\"http://techslides.com/demos/sample-videos/small.3gp\\" type=\\"video/3gp\\" />
|
||||||
|
</video>
|
||||||
|
</body></html>"
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`[html file]: with-relative-res.html 1`] = `
|
exports[`[html file]: with-relative-res.html 1`] = `
|
||||||
"<!DOCTYPE html><html xmlns=\\"http://www.w3.org/1999/xhtml\\" lang=\\"en\\"><head>
|
"<!DOCTYPE html><html xmlns=\\"http://www.w3.org/1999/xhtml\\" lang=\\"en\\"><head>
|
||||||
<meta charset=\\"UTF-8\\" />
|
<meta charset=\\"UTF-8\\" />
|
||||||
|
|||||||
19
test/html/video.html
Normal file
19
test/html/video.html
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
||||||
|
<title>video</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<video controls>
|
||||||
|
<source src=http://techslides.com/demos/sample-videos/small.webm
|
||||||
|
type=video/webm> <source
|
||||||
|
src=http://techslides.com/demos/sample-videos/small.ogv type=video/ogg>
|
||||||
|
<source src=http://techslides.com/demos/sample-videos/small.mp4
|
||||||
|
type=video/mp4> <source
|
||||||
|
src=http://techslides.com/demos/sample-videos/small.3gp type=video/3gp>
|
||||||
|
</video>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user