| 28 | * Create org.sophie2.main.media.fobs module |
| 29 | |
| 30 | * Create interface !VideoEngine which is used for video content management. It has The following methods : |
| 31 | * void play(!VideoHandler video) |
| 32 | * void stop(!VideoHandler video) |
| 33 | * void seek(!VideoHandler video) |
| 34 | * boolean registerHandler(!VideoHandler video) |
| 35 | * boolean unregisterHandler(!VideoHandler video) |
| 36 | * Time getDuration(!VideoHandler video) |
| 37 | * Time getPosition(!VideoHandler video) |
| 38 | * boolean isPlaying(!VideoHandler video) |
| 39 | * BufferedImage grabFrame(!VideoHandler video); |
| 40 | |
| 41 | * Create class !JMFVideoEngine which implements !VideoEngine interface (the extension point interface) and provides implementation for all its methods. |
| 42 | The idea is that it registers !VideoEngine and keep them mapped with their respective JMF Players and it plays the video files associated with the !VideoHandlers (through URLs); |
| 43 | |
| 44 | * Create interface !VideoHandler which has only one method URL getSource(); |
| 45 | |
| 46 | * Create class !JMFVideoHandler which implements !VideoHandler and has one property source of type URL which stores the URL to an video file and |
| 47 | has getter/setter methods. |
| 48 | |
| 49 | * The demo test org.sophie2.main.media.fobs.!TestAudioVideo.java tests creating !VideoHandler, !VideoEngine, registering/unregistering the !VideoHandler with the !VideoEngine, the play and stop methods, and the grabFrame() method; |
| 50 | |