none
动态添加MediaElement 到silverlight,播放1M以上WMV文件半天没有反应,而且极其卡壳 RRS feed

  • 问题

  • 大家好:
       在数据表中读入视频连接后
       动态添加MediaElement 到silverlight中,结果播放1M以上WMV文件半天没有反应,而且极其卡壳
       代码如下:
                            try
                            {
                                MediaElement me = new MediaElement();
                                me.Width = 480;
                                me.Height = 360;
                                me.Source = new Uri(sm.MsgInfo);
                                me.SetValue(Canvas.ZIndexProperty, MainPanel.Children.Count - 30);
                                MainPanel.Children.Add(me);
                            }
                            catch { }
    请指点

    万分感谢
    2009年8月6日 3:52

答案

  • 你好,
    不是这样.不用流媒体服务器的话是从头开始下载,下了多少能放多少.用流媒体的话,可以随意选择从某个位置开始播放.前面的内容不用下载到客户端.下载来的内容一般也不用缓存在客户端.
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/
    2009年8月11日 4:13
    版主
  • 流处理

    除了渐进式下载之外, MediaElement 还支持来自 Windows Media Server 的实时和按需流处理。如果媒体统一资源标识符 (URI) 指定 mms 方案, MediaElement 将尝试首先对文件进行流处理。如果无法对文件进行流处理,它将以渐进方式下载文件。如果媒体 URI 指定其他方案(如 http 或 https), MediaElement 将首先尝试渐进式下载。如果失败, MediaElement 尝试对文件进行流处理。

    请注意,实时流处理媒体不能暂停;同时,调用 Pause 方法无效。

    以上为微软文档中写的内容,我想你只需要把source指向你的文件,他就会自己进行流处理.


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年8月12日 3:21
    版主

全部回复

  • 熊大哥给解答一下啊!
    2009年8月6日 5:48
  • 你好,

    如果不是这么添加而是直接写在XAML里,播放同一个文件,是不是就没问题了? sm.MsgInfo是什么?得到这个值的时候要不要做很复杂的工作,比如访问服务器获得数据等等?
    另外你说的"卡壳"是说播放的时候有跳帧之类的现象是吗?在播放的时候你的机器有没有在做其他的事情? 直接写在XAML里就没有这个问题是吗? 能否提供一个可以重现问题的项目呢?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/
    2009年8月7日 7:58
    版主
  • 你好,

    如果不是这么添加而是直接写在XAML里,播放同一个文件,是不是就没问题了? sm.MsgInfo是什么?得到这个值的时候要不要做很复杂的工作,比如访问服务器获得数据等等?
    另外你说的"卡壳"是说播放的时候有跳帧之类的现象是吗?在播放的时候你的机器有没有在做其他的事情? 直接写在XAML里就没有这个问题是吗? 能否提供一个可以重现问题的项目呢?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    你好,感谢你的答复
    直接写在xaml一样的忙,视频文件25M大小, sm.MsgInfo是对应的wmv的url,不要计算,就是url地址,感觉好像是下载完了才开始放一样,那个url连接的就是wmv文件的地址,其他的什么都没有,谢谢
    2009年8月7日 14:08
  • 25M,下完后再播放,你可能要使用流处理:
    http://msdn.microsoft.com/zh-cn/library/cc189080(VS.95).aspx#anchor_mediaformats_streaming


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年8月9日 10:58
    版主
  • 你好,

    如果不是这么添加而是直接写在XAML里,播放同一个文件,是不是就没问题了? sm.MsgInfo是什么?得到这个值的时候要不要做很复杂的工作,比如访问服务器获得数据等等?
    另外你说的"卡壳"是说播放的时候有跳帧之类的现象是吗?在播放的时候你的机器有没有在做其他的事情? 直接写在XAML里就没有这个问题是吗? 能否提供一个可以重现问题的项目呢?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    你好,感谢你的答复
    直接写在xaml一样的忙,视频文件25M大小, sm.MsgInfo是对应的wmv的url,不要计算,就是url地址,感觉好像是下载完了才开始放一样,那个url连接的就是wmv文件的地址,其他的什么都没有,谢谢
    你好,
    这是正常的.你如果把视频文件简单地放到web site项目里的话是下载多少才能放多少的.你可以把这个文件放到流媒体服务器上.如果你有Windows Server 2008的话可以让Windows Media Services来host这个视频.或者你可以把它上传到http://silverlight.live.com/Default.aspx?wa=wsignin1.0

    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/
    2009年8月10日 2:39
    版主
  • 你好,

    如果不是这么添加而是直接写在XAML里,播放同一个文件,是不是就没问题了? sm.MsgInfo是什么?得到这个值的时候要不要做很复杂的工作,比如访问服务器获得数据等等?
    另外你说的"卡壳"是说播放的时候有跳帧之类的现象是吗?在播放的时候你的机器有没有在做其他的事情? 直接写在XAML里就没有这个问题是吗? 能否提供一个可以重现问题的项目呢?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    你好,感谢你的答复
    直接写在xaml一样的忙,视频文件25M大小, sm.MsgInfo是对应的wmv的url,不要计算,就是url地址,感觉好像是下载完了才开始放一样,那个url连接的就是wmv文件的地址,其他的什么都没有,谢谢
    你好,
    这是正常的.你如果把视频文件简单地放到web site项目里的话是下载多少才能放多少的.你可以把这个文件放到流媒体服务器上.如果你有Windows Server 2008的话可以让Windows Media Services来host这个视频.或者你可以把它上传到http://silverlight.live.com/Default.aspx?wa=wsignin1.0

    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    谢谢大家,就是说直接放在 web site下是不行的,可是我只有2003哪,flv没有这个问题哦
    2009年8月10日 7:10
  • 你好,

    如果不是这么添加而是直接写在XAML里,播放同一个文件,是不是就没问题了? sm.MsgInfo是什么?得到这个值的时候要不要做很复杂的工作,比如访问服务器获得数据等等?
    另外你说的"卡壳"是说播放的时候有跳帧之类的现象是吗?在播放的时候你的机器有没有在做其他的事情? 直接写在XAML里就没有这个问题是吗? 能否提供一个可以重现问题的项目呢?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    你好,感谢你的答复
    直接写在xaml一样的忙,视频文件25M大小, sm.MsgInfo是对应的wmv的url,不要计算,就是url地址,感觉好像是下载完了才开始放一样,那个url连接的就是wmv文件的地址,其他的什么都没有,谢谢
    你好,
    这是正常的.你如果把视频文件简单地放到web site项目里的话是下载多少才能放多少的.你可以把这个文件放到流媒体服务器上.如果你有Windows Server 2008的话可以让Windows Media Services来host这个视频.或者你可以把它上传到http://silverlight.live.com/Default.aspx?wa=wsignin1.0

    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    谢谢大家,就是说直接放在 web site下是不行的,可是我只有2003哪,flv没有这个问题哦

    你好,并不是说这样不行,只是比起streaming来效果可能不是很好. 另外我建议你用Expression Encoder编码一下这个视屏,看看会不会好点.
    http://www.microsoft.com/expression/try-it/Default.aspx
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/
    2009年8月10日 9:36
    版主
  • 你好,

    如果不是这么添加而是直接写在XAML里,播放同一个文件,是不是就没问题了? sm.MsgInfo是什么?得到这个值的时候要不要做很复杂的工作,比如访问服务器获得数据等等?
    另外你说的"卡壳"是说播放的时候有跳帧之类的现象是吗?在播放的时候你的机器有没有在做其他的事情? 直接写在XAML里就没有这个问题是吗? 能否提供一个可以重现问题的项目呢?
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    你好,感谢你的答复
    直接写在xaml一样的忙,视频文件25M大小, sm.MsgInfo是对应的wmv的url,不要计算,就是url地址,感觉好像是下载完了才开始放一样,那个url连接的就是wmv文件的地址,其他的什么都没有,谢谢
    你好,
    这是正常的.你如果把视频文件简单地放到web site项目里的话是下载多少才能放多少的.你可以把这个文件放到流媒体服务器上.如果你有Windows Server 2008的话可以让Windows Media Services来host这个视频.或者你可以把它上传到http://silverlight.live.com/Default.aspx?wa=wsignin1.0

    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    谢谢大家,就是说直接放在 web site下是不行的,可是我只有2003哪,flv没有这个问题哦

    你好,并不是说这样不行,只是比起streaming来效果可能不是很好. 另外我建议你用Expression Encoder编码一下这个视屏,看看会不会好点.
    http://www.microsoft.com/expression/try-it/Default.aspx
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/

    你好,是不是说,如果不用流媒体服务器,而是直接使用website的话,wmv的视频文件不管多大都是得下载完了才开始播放,而不是像flv那样边传输边播放?
    谢谢
    2009年8月11日 0:56
  • 你好,
    不是这样.不用流媒体服务器的话是从头开始下载,下了多少能放多少.用流媒体的话,可以随意选择从某个位置开始播放.前面的内容不用下载到客户端.下载来的内容一般也不用缓存在客户端.
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. Need a sample of a technique of Microsoft? Just check out CodeFx first! http://cfx.codeplex.com/
    2009年8月11日 4:13
    版主
  • 不是,不用流媒体服务器,SL还是边下载边播放.
    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年8月12日 3:17
    版主
  • 流处理

    除了渐进式下载之外, MediaElement 还支持来自 Windows Media Server 的实时和按需流处理。如果媒体统一资源标识符 (URI) 指定 mms 方案, MediaElement 将尝试首先对文件进行流处理。如果无法对文件进行流处理,它将以渐进方式下载文件。如果媒体 URI 指定其他方案(如 http 或 https), MediaElement 将首先尝试渐进式下载。如果失败, MediaElement 尝试对文件进行流处理。

    请注意,实时流处理媒体不能暂停;同时,调用 Pause 方法无效。

    以上为微软文档中写的内容,我想你只需要把source指向你的文件,他就会自己进行流处理.


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年8月12日 3:21
    版主
  • 不是,不用流媒体服务器,SL还是边下载边播放.
    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!

    可它就是半天没有反应,一个几十K的视频没有问题,2M以后都半天没有反应,文件越大等待时间越长
    2009年8月16日 6:35
  • 会不会是你服务器的问题。要是有可能可以换个服务器试试。
    2009年8月16日 9:52