探索视频点播平台的构建

随着互联网技术的发展,视频点播服务已经成为日常生活的一部分。YouTube的成功就是最好的证明。在美国,发现了hulu.com,这是一个非常酷的服务,遗憾的是它目前只在美国提供服务。hulu.com提供了一种全新的观看体验,用户可以通过浏览器随时随地免费观看他们喜欢的视频,包括当前和经典的电视节目、全长电影、网络原创内容以及各种剪辑。

在探索如何构建类似hulu.com的网站时,了解到Scott Guthrie在mix 10主题演讲中提到,用于广播冬季奥运会的媒体播放器的所有源代码都可以在CodePlex上找到。这激发了创建一个类似hulu.com的网站的兴趣。

在开始之前,要明确声明:这里展示的只是一个非常基础的演示,它不会涉及到规模、搜索或内容质量等问题。将使用一些mix视频,允许用户浏览视频集合,并按需播放。这个演示将只关注视频点播场景。Silverlight Media Foundation还涵盖了实时视频,这可能会在未来的文章中讨论。

构建基础模型

首先,创建了一个非常基础的模型来存储视频元数据:

public class Video { public string Title { get; set; } public string Description { get; set; } public string Thumbnail { get; set; } public string Source { get; set; } public bool IsSmoothStreaming { get; set; } }

接下来,创建了一个ViewModel来加载一些示例数据(实际上应该存储在数据库中)。VideosViewModel有一个视频集合,并跟踪当前选中的视频。

public class VideosViewModel : ObservableObject { public List<Video> Videos { get; set; } public Video CurrentVideo { get; set; } }

如果CurrentVideo发生变化,将手动在播放器中开始播放视频。以下是播放器的XAML代码:

<p:Player x:Name="player" />

以下是在播放器中显示视频的辅助方法:

private void PlayVideoOnPlayer(Video video) { CoreSmoothStreamingMediaElement me = new CoreSmoothStreamingMediaElement(); if (video.IsSmoothStreaming) { me.SmoothStreamingSource = new Uri(video.Source); } else { me.Source = new Uri(video.Source); } me.AutoPlay = true; player.Content = me; }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485