MediaPlayer coding question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • William Johnston

    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.Clo ck 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(n ew TimeSpan(00, 00, 02)).CreateCloc k();
    RenderTargetBit map rtb = new RenderTargetBit map(320, 240, 1 / 200, 1 / 200, PixelFormats.Pb gra32);
    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.Cre ate(rtb);

    string filename = GetFileName(fil e);

    //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);

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

    using (FileStream writer = new FileStream(outp utFileName, FileMode.Create ))
    {
    System.Console. WriteLine("Savi ng [{0}]", outputFileName) ;
    encoder.Save(wr iter);
    }
    }
    catch (Exception e)
    {
    System.Console. WriteLine("Crea teThumbnail: " + e.Message);
    System.Environm ent.Exit(1);
    }
    }

    Any suggestions?

    Thanks,
    William Johnston

  • William Johnston

    #2
    Re: MediaPlayer coding question

    "William Johnston" <williamj@tenba se2.comwrote:
    >
    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(n ew Uri(file));
    mt.BeginTime = new TimeSpan(00, 00, 02);
    MediaClock mc = mt.CreateClock( );

    string beginTime = null;

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

    mp.Clock = mt.CreateClock( );

    if (debug)
    {
    beginTime = mp.Clock.Timeli ne.BeginTime.To String();
    System.Console. WriteLine("begi nTime: [" + beginTime + "]");
    }

    RenderTargetBit map rtb = new RenderTargetBit map(130, 92, 1 / 200, 1 / 200, PixelFormats.Pb gra32);
    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(fil e);

    //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);

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

    using (FileStream writer = new FileStream(outp utFileName, FileMode.Create ))
    {
    System.Console. WriteLine("Savi ng [{0}]", outputFileName) ;
    encoder.Save(wr iter);
    }
    }
    catch (Exception e)
    {
    System.Console. WriteLine("Crea teThumbnail: " + e.Message);
    System.Environm ent.Exit(1);
    }
    }

    Thanks,
    William Johnston

    Comment

    Working...