MediaService
in package
Service class for media file handling and player generation.
Tags
Table of Contents
Constants
- AUDIO_FORMATS = ['.mp3', '.wav', '.ogg', '.m4a', '.flac']
- Audio-only formats.
- SUPPORTED_FORMATS = [ // Audio/video 'mp3', 'mp4', 'ogg', 'wav', 'webm', 'm4a', 'mkv', 'flac', // Text/subtitles 'txt', 'srt', 'vtt', 'epub', ]
- Supported file formats for import.
Methods
- getMediaPathOptions() : string
- Get the different options to display as acceptable media files.
- getMediaPaths() : array{base_path: string, paths?: string[], folders?: string[], error?: string}
- Return the paths for all media files.
- getMediaPathSelector() : string
- Generate HTML for media path selection UI.
- getMediaPlayerHtml() : string
- Get HTML for a media player, audio or video.
- renderAudioPlayer() : void
- Create an HTML audio player.
- renderHtml5AudioPlayer() : void
- Create an HTML5 native audio player (Vite mode).
- renderMediaPlayer() : void
- Create an HTML media player, audio or video.
- renderVideoPlayer() : void
- Create an embed video player.
- searchMediaPaths() : array{paths: string[], folders: string[]}
- Return the list of media files found in folder, recursively.
- renderLocalVideoPlayer() : void
- Render a local video player.
- renderOnlineVideoPlayer() : void
- Render an online video player in an iframe.
Constants
AUDIO_FORMATS
Audio-only formats.
private
array<string|int, string>
AUDIO_FORMATS
= ['.mp3', '.wav', '.ogg', '.m4a', '.flac']
SUPPORTED_FORMATS
Supported file formats for import.
private
array<string|int, string>
SUPPORTED_FORMATS
= [
// Audio/video
'mp3',
'mp4',
'ogg',
'wav',
'webm',
'm4a',
'mkv',
'flac',
// Text/subtitles
'txt',
'srt',
'vtt',
'epub',
]
Methods
getMediaPathOptions()
Get the different options to display as acceptable media files.
public
getMediaPathOptions(string $dir) : string
Parameters
- $dir : string
-
Directory containing files
Return values
string —HTML-formatted OPTION tags
getMediaPaths()
Return the paths for all media files.
public
getMediaPaths() : array{base_path: string, paths?: string[], folders?: string[], error?: string}
Return values
array{base_path: string, paths?: string[], folders?: string[], error?: string}getMediaPathSelector()
Generate HTML for media path selection UI.
public
getMediaPathSelector(string $fieldName) : string
Parameters
- $fieldName : string
-
HTML field name for media string in form. Will be used as this.form.[$fieldName] in JS.
Return values
string —HTML-formatted string for media selection
getMediaPlayerHtml()
Get HTML for a media player, audio or video.
public
getMediaPlayerHtml(string $path[, int $offset = 0 ]) : string
Parameters
- $path : string
-
URL or local file path
- $offset : int = 0
-
Offset from the beginning of the video
Return values
string —HTML string for the media player, or empty string if no path
renderAudioPlayer()
Create an HTML audio player.
public
renderAudioPlayer(string $audio[, int $offset = 0 ]) : void
Parameters
- $audio : string
-
Audio URL
- $offset : int = 0
-
Offset from the beginning of the audio
renderHtml5AudioPlayer()
Create an HTML5 native audio player (Vite mode).
public
renderHtml5AudioPlayer(string $audio, int $offset, bool $repeatMode, int $currentplayerseconds, int $currentplaybackrate) : void
Parameters
- $audio : string
-
Audio URL
- $offset : int
-
Offset from the beginning
- $repeatMode : bool
-
Whether to repeat
- $currentplayerseconds : int
-
Seconds to skip
- $currentplaybackrate : int
-
Playback rate (10 = 1.0x)
renderMediaPlayer()
Create an HTML media player, audio or video.
public
renderMediaPlayer(string $path[, int $offset = 0 ]) : void
Parameters
- $path : string
-
URL or local file path
- $offset : int = 0
-
Offset from the beginning of the video
renderVideoPlayer()
Create an embed video player.
public
renderVideoPlayer(string $path[, int $offset = 0 ]) : void
Parameters
- $path : string
-
URL or local file path
- $offset : int = 0
-
Offset from the beginning of the video
searchMediaPaths()
Return the list of media files found in folder, recursively.
public
searchMediaPaths(string $dir) : array{paths: string[], folders: string[]}
Parameters
- $dir : string
-
Directory to search into.
Return values
array{paths: string[], folders: string[]}renderLocalVideoPlayer()
Render a local video player.
private
renderLocalVideoPlayer(string $path) : void
Parameters
- $path : string
-
Local file path
renderOnlineVideoPlayer()
Render an online video player in an iframe.
private
renderOnlineVideoPlayer(string $url) : void
Parameters
- $url : string
-
Video embed URL