2025-01-22 16:18:30 +01:00

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;
}
}