MediaPlayer coding question

  • Thread starter William Johnston
  • Start date
W

William Johnston

Hi,

I modified a thumbnail creation app and get black images since the first second is black as well.

My questions are:

1. How do I set the MediaPlayer.Clock property to start screen capture at two seconds?
2. How do I open a file without using a URI?

Here's the sample code:

private void CreateThumbnail(string file, string outputDir)
{
try
{

Uri uri = new Uri(file);

MediaPlayer mp = new MediaPlayer();
mp.Open(uri);
//mp.Position = new TimeSpan(00, 00, 02);
mp.Clock = new MediaTimeline(new TimeSpan(00, 00, 02)).CreateClock();
RenderTargetBitmap rtb = new RenderTargetBitmap(320, 240, 1 / 200, 1 / 200, PixelFormats.Pbgra32);
DrawingVisual dv = new DrawingVisual();
DrawingContext dc = dv.RenderOpen();
// RectAnimation ra = new RectAnimation();
// ra.BeginTime = new TimeSpan(00, 00, 02);
// dc.DrawVideo(mp, new Rect(0, 0, 320, 240), ra.CreateClock());
dc.DrawVideo(mp, new Rect(0, 0, 320, 240));

dc.Close();
rtb.Render(dv);
//Image im = new Image();
//im.Source = BitmapFrame.Create(rtb);

string filename = GetFileName(file);

//create the output filename
object[] formatParams = new object[2];
formatParams[0] = outputDir;
formatParams[1] = filename;

string outputFileName = null;

outputFileName = string.Format("{0}\\tn_{1}.bmp", formatParams);

BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));

using (FileStream writer = new FileStream(outputFileName, FileMode.Create))
{
System.Console.WriteLine("Saving [{0}]", outputFileName);
encoder.Save(writer);
}
}
catch (Exception e)
{
System.Console.WriteLine("CreateThumbnail: " + e.Message);
System.Environment.Exit(1);
}
}

Any suggestions?

Thanks,
William Johnston
 
W

William Johnston

Still getting black thumbnails after setting BeginTime for MediaTimeLine object.

Here is my modifed thumbnail creator code:

private void CreateThumbnail(string file, string outputDir)
{
try
{
MediaPlayer mp = new MediaPlayer();

MediaTimeline mt = new MediaTimeline(new Uri(file));
mt.BeginTime = new TimeSpan(00, 00, 02);
MediaClock mc = mt.CreateClock();

string beginTime = null;

if (debug)
{
beginTime = mc.Timeline.BeginTime.ToString();
System.Console.WriteLine("beginTime: [" + beginTime + "]");
}

mp.Clock = mt.CreateClock();

if (debug)
{
beginTime = mp.Clock.Timeline.BeginTime.ToString();
System.Console.WriteLine("beginTime: [" + beginTime + "]");
}

RenderTargetBitmap rtb = new RenderTargetBitmap(130, 92, 1 / 200, 1 / 200, PixelFormats.Pbgra32);
DrawingVisual dv = new DrawingVisual();
DrawingContext dc = dv.RenderOpen();
RectAnimation ra = new RectAnimation();
dc.DrawVideo(mp, new Rect(0, 0, 130, 92));

dc.Close();
rtb.Render(dv);

string filename = GetFileName(file);

//create the output filename
object[] formatParams = new object[2];
formatParams[0] = outputDir;
formatParams[1] = filename;

string outputFileName = null;

outputFileName = string.Format("{0}\\tn_{1}.bmp", formatParams);

BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));

using (FileStream writer = new FileStream(outputFileName, FileMode.Create))
{
System.Console.WriteLine("Saving [{0}]", outputFileName);
encoder.Save(writer);
}
}
catch (Exception e)
{
System.Console.WriteLine("CreateThumbnail: " + e.Message);
System.Environment.Exit(1);
}
}

Thanks,
William Johnston
 
S

SC Vinod

Hi,

I'm also facing the same problem. Did you get an answer for this??



William Johnston wrote:

Re: MediaPlayer coding question
11-Feb-08


Still getting black thumbnails after setting BeginTime for MediaTimeLine object

Here is my modifed thumbnail creator code

private void CreateThumbnail(string file, string outputDir

tr

MediaPlayer mp = new MediaPlayer()

MediaTimeline mt = new MediaTimeline(new Uri(file))
mt.BeginTime = new TimeSpan(00, 00, 02)
MediaClock mc = mt.CreateClock()

string beginTime = null

if (debug

beginTime = mc.Timeline.BeginTime.ToString()
System.Console.WriteLine("beginTime: [" + beginTime + "]")


mp.Clock = mt.CreateClock()

if (debug

beginTime = mp.Clock.Timeline.BeginTime.ToString()
System.Console.WriteLine("beginTime: [" + beginTime + "]")


RenderTargetBitmap rtb = new RenderTargetBitmap(130, 92, 1 / 200, 1 / 200, PixelFormats.Pbgra32)
DrawingVisual dv = new DrawingVisual()
DrawingContext dc = dv.RenderOpen()
RectAnimation ra = new RectAnimation()
dc.DrawVideo(mp, new Rect(0, 0, 130, 92))

dc.Close()
rtb.Render(dv)

string filename = GetFileName(file)

//create the output filenam
object[] formatParams = new object[2]
formatParams[0] = outputDir
formatParams[1] = filename

string outputFileName = null

outputFileName = string.Format("{0}\\tn_{1}.bmp", formatParams)

BmpBitmapEncoder encoder = new BmpBitmapEncoder()
encoder.Frames.Add(BitmapFrame.Create(rtb))

using (FileStream writer = new FileStream(outputFileName, FileMode.Create)

System.Console.WriteLine("Saving [{0}]", outputFileName)
encoder.Save(writer)
}

catch (Exception e

System.Console.WriteLine("CreateThumbnail: " + e.Message)
System.Environment.Exit(1)



Thanks
William Johnston

Previous Posts In This Thread:

MediaPlayer coding question
Hi

I modified a thumbnail creation app and get black images since the first second is black as well

My questions are

1. How do I set the MediaPlayer.Clock property to start screen capture at two seconds
2. How do I open a file without using a URI

Here's the sample code

private void CreateThumbnail(string file, string outputDir

tr


Uri uri = new Uri(file)

MediaPlayer mp = new MediaPlayer()
mp.Open(uri)
//mp.Position = new TimeSpan(00, 00, 02)
mp.Clock = new MediaTimeline(new TimeSpan(00, 00, 02)).CreateClock();
RenderTargetBitmap rtb = new RenderTargetBitmap(320, 240, 1 / 200, 1 / 200, PixelFormats.Pbgra32)
DrawingVisual dv = new DrawingVisual()
DrawingContext dc = dv.RenderOpen()
// RectAnimation ra = new RectAnimation()
// ra.BeginTime = new TimeSpan(00, 00, 02)
// dc.DrawVideo(mp, new Rect(0, 0, 320, 240), ra.CreateClock())
dc.DrawVideo(mp, new Rect(0, 0, 320, 240))

dc.Close()
rtb.Render(dv)
//Image im = new Image()
//im.Source = BitmapFrame.Create(rtb)

string filename = GetFileName(file)

//create the output filenam
object[] formatParams = new object[2];
formatParams[0] = outputDir;
formatParams[1] = filename;

string outputFileName = null;

outputFileName = string.Format("{0}\\tn_{1}.bmp", formatParams);

BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));

using (FileStream writer = new FileStream(outputFileName, FileMode.Create))
{
System.Console.WriteLine("Saving [{0}]", outputFileName);
encoder.Save(writer);
}
}
catch (Exception e)
{
System.Console.WriteLine("CreateThumbnail: " + e.Message);
System.Environment.Exit(1);
}
}

Any suggestions?

Thanks,
William Johnston

Re: MediaPlayer coding question

Still getting black thumbnails after setting BeginTime for MediaTimeLine object.

Here is my modifed thumbnail creator code:

private void CreateThumbnail(string file, string outputDir)
{
try
{
MediaPlayer mp = new MediaPlayer();

MediaTimeline mt = new MediaTimeline(new Uri(file));
mt.BeginTime = new TimeSpan(00, 00, 02);
MediaClock mc = mt.CreateClock();

string beginTime = null;

if (debug)
{
beginTime = mc.Timeline.BeginTime.ToString();
System.Console.WriteLine("beginTime: [" + beginTime + "]");
}

mp.Clock = mt.CreateClock();

if (debug)
{
beginTime = mp.Clock.Timeline.BeginTime.ToString();
System.Console.WriteLine("beginTime: [" + beginTime + "]");
}

RenderTargetBitmap rtb = new RenderTargetBitmap(130, 92, 1 / 200, 1 / 200, PixelFormats.Pbgra32);
DrawingVisual dv = new DrawingVisual();
DrawingContext dc = dv.RenderOpen();
RectAnimation ra = new RectAnimation();
dc.DrawVideo(mp, new Rect(0, 0, 130, 92));

dc.Close();
rtb.Render(dv);

string filename = GetFileName(file);

//create the output filename
object[] formatParams = new object[2];
formatParams[0] = outputDir;
formatParams[1] = filename;

string outputFileName = null;

outputFileName = string.Format("{0}\\tn_{1}.bmp", formatParams);

BmpBitmapEncoder encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(rtb));

using (FileStream writer = new FileStream(outputFileName, FileMode.Create))
{
System.Console.WriteLine("Saving [{0}]", outputFileName);
encoder.Save(writer);
}
}
catch (Exception e)
{
System.Console.WriteLine("CreateThumbnail: " + e.Message);
System.Environment.Exit(1);
}
}

Thanks,
William Johnston


Submitted via EggHeadCafe - Software Developer Portal of Choice
WPF GridView Sample To Insert, Update, and Delete Records
http://www.eggheadcafe.com/tutorial...a-c9a46fd3aeb2/wpf-gridview-sample-to-in.aspx
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top