blob: f2497c0fd4afa2fd7229c1bdc06aaf2dbb82a806 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
[DartPackage="mojo_services"]
module mojo.media;
import "mojo/services/media/common/interfaces/media_metadata.mojom";
import "mojo/services/media/common/interfaces/media_state.mojom";
import "mojo/services/media/common/interfaces/rate_control.mojom";
// Plays media.
interface MediaPlayer {
// Starts playback.
Play();
// Pauses playback.
Pause();
// Gets the status. To get the status immediately, call GetStatus(0). To
// get updates thereafter, pass the version sent in the previous callback.
GetStatus(uint64 version_last_seen) =>
(uint64 version, MediaPlayerStatus status);
};
// MediaPlayer status information.
struct MediaPlayerStatus {
// Current state of the player.
MediaState state;
// Transform translating local time to presentation time. Reverse translation
// (presentation time to local time) is only valid when media is playing.
TimelineTransform? timeline_transform;
// Describes the media.
MediaMetadata? metadata;
};