Skip to content

Package: MediaPlayer

MediaPlayer

Coverage

1: /*
2: * *********************************************************************************************************************
3: *
4: * blueMarine II: Semantic Media Centre
5: * http://tidalwave.it/projects/bluemarine2
6: *
7: * Copyright (C) 2015 - 2021 by Tidalwave s.a.s. (http://tidalwave.it)
8: *
9: * *********************************************************************************************************************
10: *
11: * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
12: * the License. You may obtain a copy of the License at
13: *
14: * http://www.apache.org/licenses/LICENSE-2.0
15: *
16: * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
17: * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
18: * specific language governing permissions and limitations under the License.
19: *
20: * *********************************************************************************************************************
21: *
22: * git clone https://bitbucket.org/tidalwave/bluemarine2-src
23: * git clone https://github.com/tidalwave-it/bluemarine2-src
24: *
25: * *********************************************************************************************************************
26: */
27: package it.tidalwave.bluemarine2.ui.audio.renderer;
28:
29: import javax.annotation.Nonnull;
30: import java.time.Duration;
31: import javafx.beans.property.ObjectProperty;
32: import it.tidalwave.bluemarine2.model.MediaItem;
33:
34: /***********************************************************************************************************************
35: *
36: * @author Fabrizio Giudici
37: *
38: **********************************************************************************************************************/
39: public interface MediaPlayer
40: {
41: enum Status
42: {
43: STOPPED,
44: PLAYING,
45: PAUSED
46: }
47:
48: /*******************************************************************************************************************
49: *
50: *
51: ******************************************************************************************************************/
52: public static class Exception extends java.lang.Exception
53: {
54: public Exception (@Nonnull final String message)
55: {
56: super(message);
57: }
58:
59: public Exception (@Nonnull final Throwable cause)
60: {
61: super(cause);
62: }
63: }
64:
65: /*******************************************************************************************************************
66: *
67: *
68: ******************************************************************************************************************/
69: public void setMediaItem (@Nonnull MediaItem mediaItem)
70: throws Exception;
71:
72: /*******************************************************************************************************************
73: *
74: *
75: ******************************************************************************************************************/
76: public void play()
77: throws Exception;
78:
79: /*******************************************************************************************************************
80: *
81: *
82: ******************************************************************************************************************/
83: public void stop()
84: throws Exception;
85:
86: /*******************************************************************************************************************
87: *
88: *
89: ******************************************************************************************************************/
90: public void pause()
91: throws Exception;
92:
93: /*******************************************************************************************************************
94: *
95: *
96: ******************************************************************************************************************/
97: public void rewind()
98: throws Exception;
99:
100: /*******************************************************************************************************************
101: *
102: *
103: ******************************************************************************************************************/
104: public void fastForward()
105: throws Exception;
106:
107: /*******************************************************************************************************************
108: *
109: *
110: ******************************************************************************************************************/
111: @Nonnull
112: public ObjectProperty<Duration> playTimeProperty();
113:
114: /*******************************************************************************************************************
115: *
116: *
117: ******************************************************************************************************************/
118: @Nonnull
119: public ObjectProperty<Status> statusProperty();
120: }