65.9K
CodeProject 正在变化。 阅读更多。
Home

Silverlight 媒体播放器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.05/5 (13投票s)

2009 年 4 月 6 日

公共领域

2分钟阅读

viewsIcon

94747

downloadIcon

5588

具有一些很酷的功能,如带动画的滑动菜单和从菜单拖放

引言

您可能在互联网上遇到过一些 Silverlight 媒体播放器。我的播放器具有以下一些很酷的功能:

  • 全屏模式
  • 正常模式下的垂直滑动菜单
  • 全屏模式下的水平滑动菜单
  • 标准控制面板
  • 正常模式下从菜单拖放播放

此外,我使用了基本的 Silverlight 功能,例如使用故事板进行动画处理、Silverlight 用户控件、媒体元素、控件转换、渐变画笔和 LINQ 进行数据访问。因此,对于 Silverlight 初学者来说,这是一个很好的入门示例。

注意:由于文件过大,我没有将视频文件包含在随文章附带的演示应用程序中。但是,您可以使用 MSDN 网站上提供的任何兼容 Silverlight 的媒体格式文件。

支持的媒体格式、协议和日志字段

如果媒体文件没有兼容的文件格式,您会在浏览器状态栏中收到 JavaScript 错误,提示:

Sys.InvalidOperationException: MediaError error #3001 in control 'Xaml':AG_E_INVALID_FILE_FORMAT (不要开始抓狂,尝试不同的文件 :))

您可以将视频文件添加到附加演示应用程序 MediaPlayerLive 的 Web 应用程序的ClientBin 文件夹中。

为了使此演示正常工作,您需要在您的机器上安装 Silverlight 2.0 和 Windows Media Player 10 或更高版本。

mediaelement 控件相关的另一个常见错误是:

Sys.InvalidOperationException: MediaError error #4001 in control 'Xaml':AG_E_NETWORK_ERROR

这仅仅意味着控件找不到指定的源。

MediaPlayer2.jpg

内部结构

我使用了一个简单的data.xml 文件来存储视频文件列表。

<videos>
  <video id="0" vid="demo.wmv" img="v1.jpg" >
  <video id="1" vid="demo2.wmv" img="v2.jpg" >
  .
  .
<videos >

DataAccess.cs 类执行从该文件获取数据的操作。LINQ 查询用于在滑动菜单中显示特定的分页数据。

XDocument xDoc = XDocument.Load("Data.xml");
          var xVids = from v in xDoc.Descendants("Video") where 
          v.Attribute("img").Value.Length>0 && v.Attribute("vid").Value.Length>0
          select new
          {
              img = v.Attribute("img").Value,
              vid = v.Attribute("vid").Value,
              id = v.Attribute("id").Value
          };

我在互联网上看到过很多基于 JavaScript 的滑动图片库控件,但我自己从不使用 JavaScript,所以我认为我会为那些 C# 爱好者编写自己的用户控件。我希望您觉得它有用,考虑到我已经提供了一个如何使其参数化以显示不同大小和数量的图像的想法。我总是尝试在我的文章中留下一些未完成的事情,供读者自己尝试。

这个示例应该是一个很好的沙盒,可以在这个标准的媒体播放器周围构建您的自定义功能。我也会很快发布此播放器的更新。

历史

  • 2009 年 4 月 4 日:初始版本
© . All rights reserved.