mirror of
https://github.com/streamyfin/streamyfin.git
synced 2025-08-20 18:37:18 +02:00
89 lines
2.9 KiB
Swift
89 lines
2.9 KiB
Swift
import ExpoModulesCore
|
|
|
|
public class VlcPlayerModule: Module {
|
|
public func definition() -> ModuleDefinition {
|
|
Name("VlcPlayer")
|
|
View(VlcPlayerView.self) {
|
|
Prop("source") { (view: VlcPlayerView, source: [String: Any]) in
|
|
if !view.hasSource {
|
|
view.setSource(source)
|
|
}
|
|
}
|
|
|
|
Prop("paused") { (view: VlcPlayerView, paused: Bool) in
|
|
if paused {
|
|
view.pause()
|
|
} else {
|
|
view.play()
|
|
}
|
|
}
|
|
|
|
// Prop("muted") { (view: VlcPlayerView, muted: Bool) in
|
|
// view.setMuted(muted)
|
|
// }
|
|
|
|
// Prop("volume") { (view: VlcPlayerView, volume: Int) in
|
|
// view.setVolume(volume)
|
|
// }
|
|
|
|
// Prop("videoAspectRatio") { (view: VlcPlayerView, ratio: String) in
|
|
// view.setVideoAspectRatio(ratio)
|
|
// }
|
|
|
|
Events(
|
|
"onPlaybackStateChanged",
|
|
"onVideoStateChange",
|
|
"onVideoLoadStart",
|
|
"onVideoLoadEnd",
|
|
"onVideoProgress",
|
|
"onVideoError"
|
|
)
|
|
|
|
AsyncFunction("play") { (view: VlcPlayerView) in
|
|
view.play()
|
|
}
|
|
|
|
AsyncFunction("pause") { (view: VlcPlayerView) in
|
|
view.pause()
|
|
}
|
|
|
|
AsyncFunction("stop") { (view: VlcPlayerView) in
|
|
view.stop()
|
|
}
|
|
|
|
AsyncFunction("seekTo") { (view: VlcPlayerView, time: Int32) in
|
|
view.seekTo(time)
|
|
}
|
|
|
|
AsyncFunction("setAudioTrack") { (view: VlcPlayerView, trackIndex: Int) in
|
|
view.setAudioTrack(trackIndex)
|
|
}
|
|
|
|
AsyncFunction("getAudioTracks") { (view: VlcPlayerView) -> [[String: Any]]? in
|
|
return view.getAudioTracks()
|
|
}
|
|
|
|
AsyncFunction("setSubtitleTrack") { (view: VlcPlayerView, trackIndex: Int) in
|
|
view.setSubtitleTrack(trackIndex)
|
|
}
|
|
|
|
AsyncFunction("getSubtitleTracks") { (view: VlcPlayerView) -> [[String: Any]]? in
|
|
return view.getSubtitleTracks()
|
|
}
|
|
|
|
// AsyncFunction("setVideoCropGeometry") { (view: VlcPlayerView, geometry: String?) in
|
|
// view.setVideoCropGeometry(geometry)
|
|
// }
|
|
|
|
// AsyncFunction("getVideoCropGeometry") { (view: VlcPlayerView) -> String? in
|
|
// return view.getVideoCropGeometry()
|
|
// }
|
|
|
|
AsyncFunction("setSubtitleURL") {
|
|
(view: VlcPlayerView, url: String, name: String) in
|
|
view.setSubtitleURL(url, name: name)
|
|
}
|
|
}
|
|
}
|
|
}
|