惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
The Last Watchdog
The Last Watchdog
Security Latest
Security Latest
P
Privacy International News Feed
T
Threat Research - Cisco Blogs
H
Help Net Security
T
The Exploit Database - CXSecurity.com
Know Your Adversary
Know Your Adversary
博客园_首页
S
Securelist
S
Schneier on Security
G
GRAHAM CLULEY
Cisco Talos Blog
Cisco Talos Blog
V
Visual Studio Blog
博客园 - 叶小钗
C
Cybersecurity and Infrastructure Security Agency CISA
有赞技术团队
有赞技术团队
Recent Announcements
Recent Announcements
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
Stack Overflow Blog
Stack Overflow Blog
量子位
L
Lohrmann on Cybersecurity
Hugging Face - Blog
Hugging Face - Blog
Engineering at Meta
Engineering at Meta
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
A
Arctic Wolf
P
Privacy & Cybersecurity Law Blog
Simon Willison's Weblog
Simon Willison's Weblog
S
SegmentFault 最新的问题
The Hacker News
The Hacker News
罗磊的独立博客
博客园 - 司徒正美
D
Darknet – Hacking Tools, Hacker News & Cyber Security
博客园 - 【当耐特】
Microsoft Security Blog
Microsoft Security Blog
K
Kaspersky official blog
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
L
LINUX DO - 热门话题
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
V
V2EX
V
Vulnerabilities – Threatpost
AWS News Blog
AWS News Blog
小众软件
小众软件
Project Zero
Project Zero

博客园 - WilsonWu

[Azure] 使用 Visual Studio 2013 管理中国版 Azure 订阅 [Azure] 使用 Azure 快速搭建 Redis 服务器 [Azure] Azure 中国服务使用注意事项及兼容版存储访问工具 [Visual Studio] 开启Visual Studio 2012通过右键菜单创建单元测试(Unit Test) [Azure] 创建支持Apache,PHP以及MySQL的CentOS Web Virtual Machine Server [Windows 8] 开发初体验:对话框(MessageBox)和程序任务栏(ApplicationBar) [Windows Phone] 为应用添加后台计划任务 – Scheduled Task Agent [Windows Phone] 在中文版Visual Studio 2010中开发Windows Phone应用程序 [VSTS] 让ADO.NET Entity Framework支持Oracle数据库 [VSTS] 配置 Team Foundation Server 团队权限最佳实践 [VSTS] 从零开始 Team Foundation Server 2010 安装配置详细图文教程 [Windows Phone] 在Windows Phone程序中播放GIF动画 [Windows Phone] 在Windows Phone应用中使用Google Map替代Bing Map [Windows Phone] 另类方法解决ScrollViewer设置透明度后文字模糊问题 [免费讲座] 成都软件技术沙龙 - 开启基于Scrum的敏捷开发全新征程讲座 欢迎访问iOS开发者论坛:www.codeios.com! [TechEd 2010] 回首微软TechEd十年,我们获益良多! [.NET] 在Windows系统中搭建基于.NET的iPhone应用程序虚机开发环境 [Windows 7] 使用Windows Media Center看免费大片
[Windows Phone] Windows Phone 7 播放远程流媒体的代码实现方法
WilsonWu · 2011-09-30 · via 博客园 - WilsonWu

最近打算做一些视频音频方面的应用,但是Windows Phone 7对可播放的媒体格式有太多限制,研究了一下最终还是放弃了,因为要播放的媒体格式是不确定的,没办法简单实现,但在此过程中了解了播放流媒体的几种方法,下面分别给大家介绍。

对于本地媒体文件的播放我就不多说了,只要将媒体文件加入项目写正确路径即可播放,我们下面介绍几种远程流媒体的播放方法。

1. MediaElement

首先要说的就是WP7开发SDK中自带的MediaElement,经过我的测试该控件在播放支持格式的音频基本没问题,但是播放视频会有问题,也可能是我的视频源有问题,使用非常简单,在界面XAML中加入如下代码:

<MediaElement x:Name="meMain" MediaFailed="meMain_MediaFailed"></MediaElement> 
<Button x:Name="btnPlay1" Content="Play in MediaElement" Click="btnPlay1_Click"></Button>

其中MediaElement就是播放媒体的主体,大家可以设置其他属性来设置外观,下面的按钮用来播放,按钮点击代码如下:

meMain.Source = new Uri("http://www.robtowns.com/music/blind_willie.mp3", UriKind.Absolute); 
meMain.Play();

这样既可以完成最简单的播放功能:

QQ截图20110930130340

2. MediaPlayerLauncher

第二种也是SDK自带的,名为MediaPlayerLauncher,改类没有可视化内容,调用之后会显示一个新界面,在界面中有全部的媒体播放控制功能,我们使用下面代码实现该功能:

MediaPlayerLauncher mediaPlayerLauncher = new MediaPlayerLauncher(); 
mediaPlayerLauncher.Media = new Uri("http://www.robtowns.com/music/blind_willie.mp3", UriKind.Absolute); 
mediaPlayerLauncher.Location = MediaLocationType.Data; 
mediaPlayerLauncher.Controls = MediaPlaybackControls.Pause | MediaPlaybackControls.Stop; 
mediaPlayerLauncher.Show();

实现效果如下:

QQ截图20110930130525

3. Silverlight Media Framework

这是一套开源的媒体播放框架,大家可以通过下面地址下载:

http://smf.codeplex.com/releases/view/63434

(只要下载microsoft-smf-binwp7-2.2011.0410.1.zip即可)

下载完成后如下:

QQ截图20110930133836

接着下载另一个必要组件:

Download Smooth Streaming Player Development Kit

下载并安装后我们可以在对应安装目录中找到要用的DLL文件(C:\Program Files (x86)\Microsoft SDKs\IIS Smooth Streaming Client):

QQ截图20110930130813

接着就是用他们,将所有DLL文件加入到项目引用中::

QQ截图20110930134143

完成之后即可加入如下代码实现功能,首先加入命名空间:

xmlns:Core="clr-namespace:Microsoft.SilverlightMediaFramework.Core;assembly=Microsoft.SilverlightMediaFramework.Core.Phone" 
xmlns:Media="clr-namespace:Microsoft.SilverlightMediaFramework.Core.Media;assembly=Microsoft.SilverlightMediaFramework.Core.Phone" 

然后加入播放器代码:

<Core:SMFPlayer> 
    <Core:SMFPlayer.Playlist> 
        <Media:PlaylistItem DeliveryMethod="AdaptiveStreaming" MediaSource="http://ecn.channel9.msdn.com/o9/content/smf/smoothcontent/bbbwp7/big buck bunny.ism/manifest"/> 
    </Core:SMFPlayer.Playlist> 
</Core:SMFPlayer>

实现效果如下:

QQ截图20110930134519

希望这些能弄对大家有帮助!感谢!