mediaplayer
mediaplayer copied to clipboard
A standardised media player interface for Unity with subtitle parser.
MediaPlayer
A standardised media player interface for Unity. Aimed largely towards being able to make video player UI without worrying about the underlying video player.
Media Playback
The IVideoPlayer
interface
Properties
-
Texture
TheTexture
object that represents the texture on which the video plays -
IsReady
If the video player has loaded the video and the video can be played or not -
IsPlaying
If the video is presently playing. False when the video is not loaded or paused. -
Duration
The duration of the video in aTimeSpan
object -
TotalFrames
Total number of frames in the video that has been loaded -
FrameRate
Rate of frame playback in frames per second of the loaded video -
CurrentFrame
The currently showing frame in the video player -
CurrentPosition
The normalized position of the current frame in the [0,1] rannge -
CurrentTimeSpan
The time gap between the video start and the current frame showing
Methods
-
Open(string path, bool autoPlay)
Opens a video for loading via the path.autoPlay
flag decides if the video playback should start immediately after successful loading. -
Play
Starts playing/resumes the video -
Pause
Pauses the video playback -
Stop
Stop the video playback -
SeekFrame(long frame)
Seeks the playback to the given frame from the start of the video -
SeekTimeSpan(TimeSpan timeSpan)
Seeks the playback to a frametimeSpan
duration from the start of the video -
SeekPosition(float position)
Seeks the playabck to a frameposition
percentage from the start of the video. Eg. .5f seeks it to the middle of the video -
JumpFrames(long frameDelta)
Seeks to a frameframeDelta
frames away from the current frame -
JumpTimeSpan(TimeSpan timeSpanDelta)
Seeks to a frametimeSpanDelta
duration away from the current frame -
JumpPosition(float positionDelta)
Seeks to a framepositionDelta
percentage from the current frame. Eg. -25f whenCurrentPosition
is .75f will take it to the middle of the video
Events
-
OnReady
Fired when a video is loaded and it capable of being player -
OnError
Fired when there is an error in loading the video -
OnPlay
Fired when the video starts playing for the first time or is resumed in the middle of the playback -
OnPause
Fired when the video is paused -
OnStop
Fired when the playback is stopped -
OnSeek
Fired when the media player seeks to another frame -
OnJump
Fired when the media played jumps forward or backward by any number of frames
Subtitles
Subtitle related code is a modified version of @roguecode's Unity-Simple-SRT on GitHub.
The SubtitleBlock
class
Properties
-
Index
The Index of the block in the subtitle file. -
Length
The duration of the subtitle block in seconds -
From
The moment the subtitles should start displaying -
To
The moment the subtitles should stop displaying -
Text
The text to be displayed
The ISubtitlesParser
interface
Methods
-
GetByTime(double time)
Returns the subtitle block from the subtitle file at the specified time
Notes
The project contains the following:
-
IVideoPlayer
: An implementation for Unity's VideoPlayer component. Please seeSampleMediaPlayer
underSamples/
-
SRTParser
: An implementation ofISubtitlesParser
for working withSRT
subtitle format. -
SubtitleDisplayer
: A simple UI for showing the subtitles that requires an instance ofISubstitlesParser