-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathMediaSessionAPI.res
More file actions
83 lines (74 loc) · 2.09 KB
/
MediaSessionAPI.res
File metadata and controls
83 lines (74 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
@@warning("-30")
type mediaSessionPlaybackState =
| @as("none") None
| @as("paused") Paused
| @as("playing") Playing
type mediaSessionAction =
| @as("nexttrack") Nexttrack
| @as("pause") Pause
| @as("play") Play
| @as("previoustrack") Previoustrack
| @as("seekbackward") Seekbackward
| @as("seekforward") Seekforward
| @as("seekto") Seekto
| @as("skipad") Skipad
| @as("stop") Stop
type mediaImage = {
mutable src: string,
mutable sizes?: string,
@as("type") mutable type_?: string,
}
/**
[See MediaMetadata on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata)
*/
@editor.completeFrom(MediaMetadata)
type mediaMetadata = {
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/title)
*/
mutable title: string,
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artist)
*/
mutable artist: string,
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/album)
*/
mutable album: string,
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaMetadata/artwork)
*/
mutable artwork: array<mediaImage>,
}
/**
[See MediaSession on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession)
*/
@editor.completeFrom(MediaSession)
type mediaSession = {
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/metadata)
*/
mutable metadata: Null.t<mediaMetadata>,
/**
[Read more on MDN](https://developer.mozilla.org/docs/Web/API/MediaSession/playbackState)
*/
mutable playbackState: mediaSessionPlaybackState,
}
type mediaMetadataInit = {
mutable title?: string,
mutable artist?: string,
mutable album?: string,
mutable artwork?: array<mediaImage>,
}
type mediaSessionActionDetails = {
mutable action: mediaSessionAction,
mutable seekOffset?: float,
mutable seekTime?: float,
mutable fastSeek?: bool,
}
type mediaPositionState = {
mutable duration?: float,
mutable playbackRate?: float,
mutable position?: float,
}
type mediaSessionActionHandler = mediaSessionActionDetails => unit