Bonjour a tous, ne trouvant pas la solution a mon probleme j'ai decidé de m'inscrire afin de soliciter vos conseil.
Mon probleme est donc le suivant:
je souhaite créer un thumbnail d'une vidéo pour ce faire j utilise
la methode suivante :
public static MediaPlayer player = new MediaPlayer();
//Méthode qui lance un player capture une image et la renvoie sous forme de tableau de bytes
public static Byte[] CréerThumbnail(String parUri)
{
try
{
VideoDrawing vd = new VideoDrawing();
player.Open(new Uri(parUri));
TimeSpan intervalle = new TimeSpan(0, 0, 5);
vd.Rect = new Rect(0, 0, 100, 100);
vd.Player = player;
player.Position= TimeSpan.FromSeconds(2);
player.Position = intervalle;
player.Play();
Byte[] MonTableau;
MonTableau = Capture(player);
return MonTableau;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}
//Capture de l'image
public static Byte[] Capture(MediaPlayer player)
{
try
{
DrawingVisual drawingVisual = new DrawingVisual();
DrawingContext drawingContext = drawingVisual.RenderOpen();
drawingContext.DrawVideo(player, new Rect(new Point(0, 0), new Point(100, 100)));
drawingContext.Close();
RenderTargetBitmap rtb = new RenderTargetBitmap(100, 100, 96, 96, PixelFormats.Pbgra32);
rtb.Render(drawingVisual);
player.Stop();
JpegBitmapEncoder pngEncoder = new JpegBitmapEncoder();
pngEncoder.Frames.Add(BitmapFrame.Create(rtb));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
pngEncoder.Save(ms);
Byte[] Tableau;
return Tableau = ms.ToArray();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
voial le probleme est que le tableau de byte retourner a toujours une taille de 823kb et ceci correspond a une image noir.
si quelqu un pouvait m'éclairer merci.
Partager