forked from LeenkxTeam/LNXSDK
61 lines
1.2 KiB
Haxe
61 lines
1.2 KiB
Haxe
package kha.wpf;
|
|
|
|
import system.io.Path;
|
|
import system.Uri;
|
|
import system.UriKind;
|
|
import system.windows.media.MediaPlayer;
|
|
|
|
class Video extends kha.Video {
|
|
var player: MediaPlayer;
|
|
|
|
public function new(filename: String): Void {
|
|
super();
|
|
player = new MediaPlayer();
|
|
player.Open(new Uri(Path.GetFullPath(filename), UriKind.Absolute));
|
|
}
|
|
|
|
public function getPlayer(): MediaPlayer {
|
|
return player;
|
|
}
|
|
|
|
public override function play(loop: Bool = false): Void {
|
|
player.Play();
|
|
}
|
|
|
|
public override function pause(): Void {
|
|
player.Pause();
|
|
}
|
|
|
|
public override function stop(): Void {
|
|
player.Stop();
|
|
}
|
|
|
|
@:functionCode('
|
|
if (player.NaturalDuration.HasTimeSpan)
|
|
return Math.round(player.NaturalDuration.TimeSpan.TotalMilliseconds);
|
|
else return int.MaxValue;
|
|
')
|
|
public override function getLength(): Int {
|
|
return 0;
|
|
}
|
|
|
|
@:functionCode('
|
|
return Math.round(player.Position.TotalMilliseconds);
|
|
')
|
|
public override function getCurrentPos(): Int {
|
|
return 0;
|
|
}
|
|
|
|
public override function getVolume(): Float {
|
|
return player.Volume;
|
|
}
|
|
|
|
public override function setVolume(volume: Float): Void {
|
|
player.Volume = volume;
|
|
}
|
|
|
|
public override function unload(): Void {
|
|
player = null;
|
|
}
|
|
}
|