feat: support media playbackRate (#1000)
Co-authored-by: wangfukang <wangfukang@kuaishou.com>
This commit is contained in:
@@ -133,6 +133,8 @@ export function diff(
|
||||
oldMediaElement.volume = newMediaRRElement.volume;
|
||||
if (newMediaRRElement.currentTime !== undefined)
|
||||
oldMediaElement.currentTime = newMediaRRElement.currentTime;
|
||||
if (newMediaRRElement.playbackRate !== undefined)
|
||||
oldMediaElement.playbackRate = newMediaRRElement.playbackRate;
|
||||
break;
|
||||
}
|
||||
case 'CANVAS':
|
||||
|
||||
@@ -580,6 +580,7 @@ export function BaseRRMediaElementImpl<
|
||||
public volume?: number;
|
||||
public paused?: boolean;
|
||||
public muted?: boolean;
|
||||
public playbackRate?: number;
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
attachShadow(_init: ShadowRootInit): IRRElement {
|
||||
throw new Error(
|
||||
|
||||
@@ -217,6 +217,7 @@ describe('diff algorithm for rrdom', () => {
|
||||
expect(element.currentTime).toEqual(0);
|
||||
expect(element.muted).toEqual(false);
|
||||
expect(element.paused).toEqual(true);
|
||||
expect(element.playbackRate).toEqual(1);
|
||||
|
||||
const rrDocument = new RRDocument();
|
||||
const rrMedia = rrDocument.createElement(tagName) as RRMediaElement;
|
||||
@@ -224,12 +225,14 @@ describe('diff algorithm for rrdom', () => {
|
||||
rrMedia.currentTime = 100;
|
||||
rrMedia.muted = true;
|
||||
rrMedia.paused = false;
|
||||
rrMedia.playbackRate = 0.5;
|
||||
|
||||
diff(element, rrMedia, replayer);
|
||||
expect(element.volume).toEqual(0.5);
|
||||
expect(element.currentTime).toEqual(100);
|
||||
expect(element.muted).toEqual(true);
|
||||
expect(element.paused).toEqual(false);
|
||||
expect(element.playbackRate).toEqual(0.5);
|
||||
|
||||
rrMedia.paused = true;
|
||||
diff(element, rrMedia, replayer);
|
||||
|
||||
@@ -894,6 +894,7 @@ describe('Basic RRDocument implementation', () => {
|
||||
expect(node.volume).toBeUndefined();
|
||||
expect(node.paused).toBeUndefined();
|
||||
expect(node.muted).toBeUndefined();
|
||||
expect(node.playbackRate).toBeUndefined();
|
||||
expect(node.play).toBeDefined();
|
||||
expect(node.pause).toBeDefined();
|
||||
expect(node.toString()).toEqual('VIDEO ');
|
||||
|
||||
Reference in New Issue
Block a user