author | PAMPHILE Jonathan <pamphile@efrei.fr> |
Wed, 23 Sep 2009 16:47:42 +0200 | |
changeset 84 | 067f4a6c0cca |
parent 77 | e95e916eb018 |
child 95 | 07972aa3f2e0 |
permissions | -rw-r--r-- |
72
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
1 |
using System; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
2 |
using System.IO; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
3 |
using System.Net; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
4 |
using System.Windows; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
5 |
using System.Windows.Controls; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
6 |
using System.Windows.Data; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
7 |
using System.Windows.Media; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
8 |
using System.Windows.Media.Animation; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
9 |
using System.Windows.Navigation; |
84 | 10 |
using Microsoft.Surface; |
11 |
using Microsoft.Surface.Presentation; |
|
12 |
using Microsoft.Surface.Presentation.Controls; |
|
13 |
using System.Collections.Generic; |
|
14 |
using System.Windows.Media.Imaging; |
|
72
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
15 |
|
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
16 |
namespace FingersDance.Control.ListVideo |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
17 |
{ |
84 | 18 |
public partial class UserControlListVideo |
19 |
{ |
|
77 | 20 |
//Creation d'un Event pour Chaque Item Video |
72
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
21 |
public event EventHandler EH_ItemVideo1_ContactDown; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
22 |
public event EventHandler EH_ItemVideo2_ContactDown; |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
23 |
|
84 | 24 |
List<string> _Videos = new List<string>(); |
72
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
25 |
|
84 | 26 |
public UserControlListVideo() |
27 |
{ |
|
28 |
this.InitializeComponent(); |
|
29 |
||
30 |
// Insert code required on object creation below this point. |
|
31 |
} |
|
72
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
32 |
|
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
33 |
private void ItemVideo1_ContactDown(object sender, Microsoft.Surface.Presentation.ContactEventArgs e) |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
34 |
{ |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
35 |
if (EH_ItemVideo1_ContactDown != null) |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
36 |
EH_ItemVideo1_ContactDown(this, new EventArgs()); |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
37 |
} |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
38 |
|
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
39 |
private void ItemVideo2_ContactDown(object sender, Microsoft.Surface.Presentation.ContactEventArgs e) |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
40 |
{ |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
41 |
if (EH_ItemVideo2_ContactDown != null) |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
42 |
EH_ItemVideo2_ContactDown(this, new EventArgs()); |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
43 |
} |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
44 |
|
77 | 45 |
//Event appelé lors de la selection d'un Item dans la Video List |
72
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
46 |
private void ItemVideo1_ContactTapGesture(object sender, Microsoft.Surface.Presentation.ContactEventArgs e) |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
47 |
{ |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
48 |
if (EH_ItemVideo1_ContactDown != null) |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
49 |
EH_ItemVideo1_ContactDown(this, new EventArgs()); |
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
50 |
} |
84 | 51 |
|
52 |
private void ButtonImporter_ContactDown(object sender, Microsoft.Surface.Presentation.ContactEventArgs e) |
|
53 |
{ |
|
54 |
AddVideoToList(); |
|
55 |
} |
|
56 |
||
57 |
private void ButtonImporter_Click(object sender, System.Windows.RoutedEventArgs e) |
|
58 |
{ |
|
59 |
AddVideoToList(); |
|
60 |
} |
|
61 |
||
62 |
private void AddVideoToList() |
|
63 |
{ |
|
64 |
try |
|
65 |
{ |
|
66 |
string[] Files = new string[1]; |
|
67 |
if (System.IO.Directory.Exists(PathImporter.Text)) |
|
68 |
Files = System.IO.Directory.GetFiles(PathImporter.Text); |
|
69 |
else |
|
70 |
if (System.IO.File.Exists(PathImporter.Text)) |
|
71 |
Files[0] = PathImporter.Text; |
|
72 |
if (Files != null) |
|
73 |
foreach (string elt in Files) |
|
74 |
if (elt.ToLower().EndsWith(".wmv")) // ..... |
|
75 |
try |
|
76 |
{ |
|
77 |
Image item = getFirstPreview(elt); |
|
78 |
if (item != null) |
|
79 |
{ |
|
80 |
SurfaceListBoxItem Contener = new SurfaceListBoxItem(); |
|
81 |
Contener.Content = item; |
|
82 |
Contener.ContactHoldGesture += new ContactEventHandler(Contener_ContactHoldGesture); |
|
83 |
stackPanel.Children.Add(Contener); |
|
84 |
||
85 |
_Videos.Add(elt); |
|
86 |
} |
|
87 |
} |
|
88 |
catch (Exception ex) { } |
|
89 |
} |
|
90 |
catch (Exception) { } |
|
91 |
} |
|
92 |
||
93 |
void Contener_ContactHoldGesture(object sender, ContactEventArgs e) |
|
94 |
{ |
|
95 |
SurfaceContextMenu Menu = new SurfaceContextMenu(); |
|
96 |
Menu.Items.Add("Supprimer"); |
|
97 |
((SurfaceListBoxItem)sender).ContextMenu = Menu; |
|
98 |
||
99 |
} |
|
100 |
||
101 |
Image getFirstPreview(string path) |
|
102 |
{ |
|
103 |
MediaPlayer _player = new MediaPlayer(); |
|
104 |
_player.Open(new Uri(path)); |
|
105 |
_player.Play(); |
|
106 |
_player.Position = new TimeSpan(0, 0, 5); |
|
107 |
System.Threading.Thread.Sleep(800); |
|
108 |
RenderTargetBitmap target = new RenderTargetBitmap(100, 100, 1 / 100, 1 / 100, PixelFormats.Pbgra32); |
|
109 |
DrawingVisual visual = new DrawingVisual(); |
|
110 |
DrawingContext context = visual.RenderOpen(); |
|
111 |
Rect frameRect = new Rect(); |
|
112 |
frameRect.Height = target.Height; |
|
113 |
frameRect.Width = target.Width; |
|
114 |
context.DrawVideo(_player, frameRect); |
|
115 |
context.Close(); |
|
116 |
target.Render(visual); |
|
117 |
Image _prev = new Image(); |
|
118 |
_prev.Source = BitmapFrame.Create(target).GetAsFrozen() as BitmapFrame; |
|
119 |
_player.Stop(); |
|
120 |
||
121 |
return _prev; |
|
122 |
} |
|
123 |
} |
|
72
f1ca0958c992
Travail sur le control List Video et comunication entre ListVideo et FingersDance
sarias
parents:
diff
changeset
|
124 |
} |