3 changed files with 139 additions and 8 deletions
@ -1,22 +1,95 @@ |
|||||||
using Godot; |
using Godot; |
||||||
using System; |
using System; |
||||||
using EGFramework; |
using EGFramework; |
||||||
|
using System.IO; |
||||||
|
|
||||||
public partial class ViewLocalVideoMediaViewer : Node,IEGFramework |
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. |
// Called when the node enters the scene tree for the first time. |
||||||
public override void _Ready() |
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. |
// Called every frame. 'delta' is the elapsed time since the previous frame. |
||||||
public override void _Process(double delta) |
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(){ |
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