zoukankan      html  css  js  c++  java
  • [Windows Phone] Windows Phone 7 播放远程流媒体的代码实现方法

    最近打算做一些视频音频方面的应用,但是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

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



  • 相关阅读:
    webstorm
    数据库中的内连接和外连接
    JVM加载class文件的原理机制
    内部类
    getString()方法与getObject()方法的区别
    Class.forName的作用
    JDBC事务处理
    合并两个排序的链表
    链表中倒数第k个结点
    反转链表
  • 原文地址:https://www.cnblogs.com/WilsonWu/p/2196500.html
Copyright © 2011-2022 走看看