3 changed files with 139 additions and 8 deletions
@ -1,22 +1,95 @@
@@ -1,22 +1,95 @@
|
||||
using Godot; |
||||
using System; |
||||
using EGFramework; |
||||
using System.IO; |
||||
|
||||
public partial class ViewLocalVideoMediaViewer : Node,IEGFramework |
||||
{ |
||||
public EGLocalFileSave localFileSave { get; set; } |
||||
public VideoStreamPlayer ViewVideo { get; set; } |
||||
public TextureRect ViewImage { get; set; } |
||||
public VBoxContainer VideoList { get; set; } |
||||
public FileDialog ImportImage { get; set; } |
||||
public FileDialog ImportVideo { get; set; } |
||||
|
||||
// Called when the node enters the scene tree for the first time. |
||||
public override void _Ready() |
||||
{ |
||||
|
||||
ViewVideo = this.GetNode<VideoStreamPlayer>("ViewVideo"); |
||||
ViewImage = this.GetNode<TextureRect>("ViewImage"); |
||||
VideoList = this.GetNode<VBoxContainer>("Tab/Media/MediaList"); |
||||
ImportImage = this.GetNode<FileDialog>("ImportImage"); |
||||
ImportVideo = this.GetNode<FileDialog>("ImportVideo"); |
||||
LoadFileSystem(); |
||||
} |
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame. |
||||
public override void _Process(double delta) |
||||
{ |
||||
|
||||
} |
||||
public void LoadFileSystem(){ |
||||
this.localFileSave = new EGLocalFileSave(); |
||||
localFileSave.RootPath = "SaveData"; |
||||
if(!localFileSave.IsRemoteDirectoryExist("Media")){ |
||||
localFileSave.MakeDirectory("Media"); |
||||
} |
||||
RefreshList(); |
||||
} |
||||
public void RefreshList(){ |
||||
|
||||
string combinedPath = Path.Combine(localFileSave.RootPath, "Media"); |
||||
VideoList.ClearChildren(); |
||||
foreach (var file in localFileSave.ListRemoteFilePath("Media")){ |
||||
if(file.FileName.GetStrBehindSymbol('.')!="ogv" && file.FileName.GetStrBehindSymbol('.')!="jpg" && file.FileName.GetStrBehindSymbol('.')!="png"){ |
||||
continue; |
||||
} |
||||
Button button= new Button(); |
||||
button.Name = file.FileName; |
||||
button.Text = file.FileName; |
||||
string combinedFile = Path.Combine(combinedPath, button.Text); |
||||
button.Connect("pressed",Callable.From(()=>{ |
||||
if(button.Text.GetStrBehindSymbol('.')=="ogv"){ |
||||
PlayVideo(combinedFile); |
||||
} |
||||
if(button.Text.GetStrBehindSymbol('.')=="jpg" || button.Text.GetStrBehindSymbol('.')=="png"){ |
||||
PlayImage(combinedFile); |
||||
} |
||||
})); |
||||
VideoList.AddChild(button); |
||||
} |
||||
} |
||||
|
||||
public void PlayVideo(string videoName){ |
||||
ViewVideo.Visible = true; |
||||
ViewImage.Visible = false; |
||||
GD.Print("PlayVideo: " + videoName); |
||||
ViewVideo.Stream.File = videoName; |
||||
ViewVideo.Play(); |
||||
} |
||||
public void PlayImage(string imageName){ |
||||
ViewVideo.Visible = false; |
||||
ViewImage.Visible = true; |
||||
GD.Print("PlayImage: " + imageName); |
||||
Image image = Image.LoadFromFile(imageName); |
||||
ImageTexture texture = ImageTexture.CreateFromImage(image); |
||||
ViewImage.Texture = texture; |
||||
// ViewImage.Texture = imageName; |
||||
} |
||||
|
||||
public void OpenImportVideo(){ |
||||
ImportVideo.Popup(); |
||||
} |
||||
public void OpenImportImage(){ |
||||
ImportImage.Popup(); |
||||
} |
||||
public void UploadVideo(string localVideoPath){ |
||||
localFileSave.UploadFile(localVideoPath,"Media\\"+Path.GetFileName(localVideoPath)); |
||||
RefreshList(); |
||||
OS.Alert("Video Upload Success!","success"); |
||||
} |
||||
public void UploadImage(string localImagePath){ |
||||
localFileSave.UploadFile(localImagePath,"Media\\"+Path.GetFileName(localImagePath)); |
||||
RefreshList(); |
||||
OS.Alert("Image Upload Success!","success"); |
||||
} |
||||
} |
||||
|
Loading…
Reference in new issue