Base: {
    attributes: {
        currentState: Attribute<MediaPlayback.PlaybackState, any>;
    };
    commands: {
        next: OptionalCommand<void, TypeFromFields, any>;
        pause: Command<void, TypeFromFields, any>;
        play: Command<void, TypeFromFields, any>;
        previous: OptionalCommand<void, TypeFromFields, any>;
        skipBackward: OptionalCommand<TypeFromFields, TypeFromFields, any>;
        skipForward: OptionalCommand<TypeFromFields, TypeFromFields, any>;
        startOver: OptionalCommand<void, TypeFromFields, any>;
        stop: Command<void, TypeFromFields, any>;
    };
    events: {
        stateChanged: OptionalEvent<TypeFromFields, any>;
    };
    extensions: readonly [{
        component: {
            attributes: {
                duration: Attribute<number | bigint | null, any>;
                playbackSpeed: Attribute<number, any>;
                sampledPosition: Attribute<TypeFromFields | null, any>;
                seekRangeEnd: Attribute<number | bigint | null, any>;
                seekRangeStart: Attribute<number | bigint | null, any>;
                startTime: Attribute<number | bigint | null, any>;
            };
            commands: {
                seek: Command<TypeFromFields, TypeFromFields, any>;
            };
        };
        flags: {
            advancedSeek: true;
        };
    }, {
        component: {
            attributes: {
                activeAudioTrack: Attribute<TypeFromFields | null, any>;
                availableAudioTracks: Attribute<TypeFromFields[] | null, any>;
            };
            commands: {
                activateAudioTrack: Command<TypeFromFields, void, any>;
            };
        };
        flags: {
            audioTracks: true;
        };
    }, {
        component: {
            attributes: {
                activeTextTrack: Attribute<TypeFromFields | null, any>;
                availableTextTracks: Attribute<TypeFromFields[] | null, any>;
            };
            commands: {
                activateTextTrack: Command<TypeFromFields, void, any>;
                deactivateTextTrack: Command<void, void, any>;
            };
        };
        flags: {
            textTracks: true;
        };
    }, {
        component: {
            commands: {
                fastForward: Command<TypeFromFields, TypeFromFields, any>;
                rewind: Command<TypeFromFields, TypeFromFields, any>;
            };
        };
        flags: {
            variableSpeed: true;
        };
    }];
    features: {
        advancedSeek: BitFlag;
        audioAdvance: BitFlag;
        audioTracks: BitFlag;
        textTracks: BitFlag;
        variableSpeed: BitFlag;
    };
    id: 1286;
    name: "MediaPlayback";
    revision: 2;
}

These elements and properties are present in all MediaPlayback clusters.

Type declaration

  • Readonlyattributes: {
        currentState: Attribute<MediaPlayback.PlaybackState, any>;
    }
    • ReadonlycurrentState: Attribute<MediaPlayback.PlaybackState, any>

      Indicates the current playback state of media.

      During fast-forward, rewind, and other seek operations; this attribute shall be set to PLAYING.

      MatterSpecification.v13.Cluster § 6.10.6.1

  • Readonlycommands: {
        next: OptionalCommand<void, TypeFromFields, any>;
        pause: Command<void, TypeFromFields, any>;
        play: Command<void, TypeFromFields, any>;
        previous: OptionalCommand<void, TypeFromFields, any>;
        skipBackward: OptionalCommand<TypeFromFields, TypeFromFields, any>;
        skipForward: OptionalCommand<TypeFromFields, TypeFromFields, any>;
        startOver: OptionalCommand<void, TypeFromFields, any>;
        stop: Command<void, TypeFromFields, any>;
    }
    • Readonlynext: OptionalCommand<void, TypeFromFields, any>

      Upon receipt, this shall cause the handler to be invoked for "Next". User experience is context- specific. This will often Go forward to the next media playback item.

      MatterSpecification.v13.Cluster § 6.10.7.6

    • Readonlypause: Command<void, TypeFromFields, any>

      Upon receipt, this shall pause playback of the media.

      MatterSpecification.v13.Cluster § 6.10.7.2

    • Readonlyplay: Command<void, TypeFromFields, any>

      Upon receipt, this shall play media. If content is currently in a FastForward or Rewind state. Play shall return media to normal playback speed.

      MatterSpecification.v13.Cluster § 6.10.7.1

    • Readonlyprevious: OptionalCommand<void, TypeFromFields, any>

      Upon receipt, this shall cause the handler to be invoked for "Previous". User experience is context-specific. This will often Go back to the previous media playback item.

      MatterSpecification.v13.Cluster § 6.10.7.5

    • ReadonlyskipBackward: OptionalCommand<TypeFromFields, TypeFromFields, any>

      Upon receipt, this shall Skip backward in the media by the given number of milliseconds.

      MatterSpecification.v13.Cluster § 6.10.7.10

    • ReadonlyskipForward: OptionalCommand<TypeFromFields, TypeFromFields, any>

      Upon receipt, this shall Skip forward in the media by the given number of milliseconds.

      MatterSpecification.v13.Cluster § 6.10.7.9

    • ReadonlystartOver: OptionalCommand<void, TypeFromFields, any>

      Upon receipt, this shall Start Over with the current media playback item.

      MatterSpecification.v13.Cluster § 6.10.7.4

    • Readonlystop: Command<void, TypeFromFields, any>

      Upon receipt, this shall stop playback of the media. User-visible outcome is context-specific. This may navigate the user back to the location from where the media was originally launched.

      MatterSpecification.v13.Cluster § 6.10.7.3

  • Readonlyevents: {
        stateChanged: OptionalEvent<TypeFromFields, any>;
    }
    • ReadonlystateChanged: OptionalEvent<TypeFromFields, any>

      If supported, this event shall be generated when there is a change in any of the supported attributes of the Media Playback cluster.

      MatterSpecification.v13.Cluster § 6.10.8.1

  • Readonlyextensions: readonly [{
        component: {
            attributes: {
                duration: Attribute<number | bigint | null, any>;
                playbackSpeed: Attribute<number, any>;
                sampledPosition: Attribute<TypeFromFields | null, any>;
                seekRangeEnd: Attribute<number | bigint | null, any>;
                seekRangeStart: Attribute<number | bigint | null, any>;
                startTime: Attribute<number | bigint | null, any>;
            };
            commands: {
                seek: Command<TypeFromFields, TypeFromFields, any>;
            };
        };
        flags: {
            advancedSeek: true;
        };
    }, {
        component: {
            attributes: {
                activeAudioTrack: Attribute<TypeFromFields | null, any>;
                availableAudioTracks: Attribute<TypeFromFields[] | null, any>;
            };
            commands: {
                activateAudioTrack: Command<TypeFromFields, void, any>;
            };
        };
        flags: {
            audioTracks: true;
        };
    }, {
        component: {
            attributes: {
                activeTextTrack: Attribute<TypeFromFields | null, any>;
                availableTextTracks: Attribute<TypeFromFields[] | null, any>;
            };
            commands: {
                activateTextTrack: Command<TypeFromFields, void, any>;
                deactivateTextTrack: Command<void, void, any>;
            };
        };
        flags: {
            textTracks: true;
        };
    }, {
        component: {
            commands: {
                fastForward: Command<TypeFromFields, TypeFromFields, any>;
                rewind: Command<TypeFromFields, TypeFromFields, any>;
            };
        };
        flags: {
            variableSpeed: true;
        };
    }]

    This metadata controls which MediaPlaybackCluster elements matter.js activates for specific feature combinations.

  • Readonlyfeatures: {
        advancedSeek: BitFlag;
        audioAdvance: BitFlag;
        audioTracks: BitFlag;
        textTracks: BitFlag;
        variableSpeed: BitFlag;
    }
    • ReadonlyadvancedSeek: BitFlag

      AdvancedSeek

      This feature provides access to the time offset location within current playback media and allows for jumping to a specific location using time offsets. This enables clients to implement more advanced media seeking behavior in their user interface, for instance a "seek bar".

      MatterSpecification.v13.Cluster § 6.10.4.1

    • ReadonlyaudioAdvance: BitFlag

      AudioAdvance

      This feature is for a device or app that supports playing audio during fast and slow advance and rewind (e.g., while playback speed is not 1). A device that supports this feature may only support playing audio during certain speeds.

      A cluster implementing AA shall implement AS.

      MatterSpecification.v13.Cluster § 6.10.4.5

    • ReadonlyaudioTracks: BitFlag

      AudioTracks

      This feature is for a device or app that supports Audio Tracks.

      MatterSpecification.v13.Cluster § 6.10.4.4

    • ReadonlytextTracks: BitFlag

      TextTracks

      This feature is for a device or app that supports Text Tracks.

      MatterSpecification.v13.Cluster § 6.10.4.3

    • ReadonlyvariableSpeed: BitFlag

      VariableSpeed

      This feature is for a device which supports variable speed playback on media that supports it.

      MatterSpecification.v13.Cluster § 6.10.4.2

  • Readonlyid: 1286
  • Readonlyname: "MediaPlayback"
  • Readonlyrevision: 2