Windows Phone 播放音频之SoundEffect

转载 2012年03月30日 23:26:20


  前面介绍了Windows Phone 录制音频Windows Phone 保存录音录制的音频保存为WAV格式。在WindowsPhone中播放音频的方式有很多种,下面就介绍一种专一用于播放WAV格式的播放方式。需要用到SoundEffectSoundEffectInstance两个类,这两个类属于 XNAFramework ,所以需要添加引用Microsoft.Xna.Framework
1.同录制音频一样需要透过指定一个定期执行FrameworkDispatcher.Update() 的事件。  

        //设置定时器
        DispatcherTimer timer = new DispatcherTimer();
        timer.Interval = TimeSpan.FromMilliseconds(33);
        timer.Tick += delegate { try { FrameworkDispatcher.Update(); } catch { } };
        timer.Start();

复制代码

2.获取WAV文件流,用于创建SoundEffect对象。

        //获取WAV文件流
        Stream stream = null;
        //如果是资源文件处理
        StreamResourceInfo info = Application.GetResourceStream(new Uri(path, UriKind.Relative));
        if (info != null)
        {
            stream = info.Stream;
        }
        //如果是独立存储文件处理
        using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
        {
            //打开文件
            stream = myIsolatedStorage.OpenFile(path, FileMode.Open, FileAccess.Read);
        }

复制代码

3.创建SoundEffect对象,播放音频。

        //创建音频播放实例
        SoundEffect sound = SoundEffect.FromStream(stream);
        SoundEffectInstance soundInstance = sound.CreateInstance();
        //设置循环播放
        soundInstance.IsLooped = true;
        //启动播放
        soundInstance.Play();

复制代码

4.音频暂停,复位,停止。

        //暂停
        soundInstance.Pause();
        //复位
        soundInstance.Resume();
        //停止
        soundInstance.Stop();

复制代码

5.设置音频播放的音量。

        //音量取值范围为[0,1],默认值为0.85
        soundInstance.Volume = 0.5F;

复制代码

  使用SoundEffectSoundEffectInstance方式只能播放WAV格式的音频,并且还需要引入XNA库。

 

 

 

 

Windows phone 7 判断网络连接

类名:DeviceNetworkInformation

CellularMobileOperator获取蜂窝移动运营商的名称。

IsCellularDataEnabled获取一个值,该值指示网络是否启用了蜂窝数据。

IsCellularDataRoamingEnabled获取一个值,该值指示网络是否允许数据漫游。

IsNetworkAvailable获取一个值,该值指示网络是否可用。

IsWiFiEnabled获取一个值,该值指示网络是否启用了 Wi-Fi

 範例程式:實作註冊監控網路狀態的變動事件與識別變動後的網路狀態。

?

// Constructor

public MainPage()

{

InitializeComponent();

Initialization(false);

}

 

private void Initialization(bool pIsRegist)

{

//識別是否啟動行動網路

tgsIcde.IsChecked = DeviceNetworkInformation.IsCellularDataEnabled;

//識別是否啟動數據漫游

tgsIcdr.IsChecked = DeviceNetworkInformation.IsCellularDataRoamingEnabled;

//識別設備網路是否有網路功能

tgsIna.IsChecked = DeviceNetworkInformation.IsNetworkAvailable;

//識別是否啟動WiFi

tgsIwifi.IsChecked = DeviceNetworkInformation.IsWiFiEnabled;

 

//避免測試狀態為airplane mode

if (DeviceNetworkInformation.CellularMobileOperator!= null)

{

//識別CellularMobileOperator的類型

switch (DeviceNetworkInformation.CellularMobileOperator.ToLower())

{

case "chunghwa"

tblCellularOperator.Text = "中華";

break;

case "taiwanmobile"

tblCellularOperator.Text = "台哥大";

break;

case "fetnet"

tblCellularOperator.Text = "遠傳";

break;

}

}

 

if (pIsRegist == false)

{

//註冊監控網路狀態

DeviceNetworkInformation.NetworkAvailabilityChanged +=

new EventHandler<NetworkNotificationEventArgs>(NetworkAvailabilityChanged);

}

}

 

void NetworkAvailabilityChanged(object sender, NetworkNotificationEventArgs e)

{

//取得info來識別目前網路資訊

NetworkInterfaceInfo tInfo = e.NetworkInterface;

 

//取得網路狀態通知類型

NetworkNotificationType tNotification = e.NotificationType;

string tType = string.Empty;

switch (tNotification)

{

case NetworkNotificationType.CharacteristicUpdate

tType += "CharacteristicUpdate \n";

break;

case NetworkNotificationType.InterfaceConnected

tType += "InterfaceConnected \n";

break;

case NetworkNotificationType.InterfaceDisconnected

tType += "InterfaceDisconnected \n";

break;

}

Dispatcher.BeginInvoke(() =>

{

tblNetworkState.Text = tType;

Initialization(true);

});

}

 

private void ApplicationBarIconButton_Click(object sender, EventArgs e)

{

//利用ConnectionSettingsTask修改網路狀態來測試監控網路狀態事件

ConnectionSettingsTask tConnectionSettings = new ConnectionSettingsTask();

tConnectionSettings.ConnectionSettingsType = ConnectionSettingsType.AirplaneMode;

tConnectionSettings.Show();

}

 執行結果:

    

Windows Phone 播放音频之SoundEffect

前面介绍了Windows Phone 录制音频http://www.2cto.com/kf/201203/122741.html和Windows Phone 保存录音http://www.2cto.c...
  • u012823326
  • u012823326
  • 2013年11月14日 00:47
  • 456

注册成为Windows Phone开发者并且解锁Windows Phone 8.1手机

上篇文章介绍了如何使用Qt Creator和Visual Studio构建Windows Phone 8.1应用并且在Windows Phone 8.1模拟器上运行。当然了,能够运行在模拟器只能算第一...
  • jiangcaiyang123
  • jiangcaiyang123
  • 2014年08月28日 13:02
  • 3693

Windows Phone 保存、读取图片

转自:http://blog.csdn.net/leons77/article/details/8085662 读取图片 图片的来源一般有3个地方:网络、独立存储和程序包。 ...
  • gf771115
  • gf771115
  • 2014年07月09日 23:31
  • 2134

Windows Phone开发(二)-- 框架结构和启动过程

上一篇文章介绍了Windows Phone的开发环境和一个简单的Windows Phone程序的演示和结构,这一篇文章要深入一点,介绍Windows Phone的框架结构和程序启动的过程。 一 Win...
  • cc_net
  • cc_net
  • 2011年06月21日 02:18
  • 6860

Windows Phone 8开发环境搭建

开发Windows Phone需要两个工具:Windows Phone SDK 8.0和Visual Studio集成开发工具。我们购买的Visual Studio Ultimate 2012不包括W...
  • tonny_guan
  • tonny_guan
  • 2014年11月24日 16:32
  • 3347

Windows 8.1 下 Windows Phone 开发环境的搭建流程

转载:Windows 8.1 下 Windows Phone 开发环境的搭建流程 Windows 8.1 下 Windows Phone 开发环境的搭建流程...
  • LH806732
  • LH806732
  • 2014年04月14日 19:24
  • 3801

Windows Phone 学生开发者账号免费注册攻略

1. 打开Windows开发者
  • sunhao2011
  • sunhao2011
  • 2014年08月06日 10:27
  • 1448

win8.1使用WP8SDK出现Windows Phone Emulator无法启动的问题解决方案

近期在win8.1专业版系统的vs2012上装了wp8SDK 体验一把wp开发的快感 安装sdk过程一切顺利 打完代码之后运行调试 问题来了: 提示如下错误 遂百度之 主要的方法...
  • qq1010885678
  • qq1010885678
  • 2014年07月08日 20:20
  • 1268

Windows Phone 8细节:更人性化的多任务管理

大家知道,Windows Phone从7.5版本开始加入多任务管理机制,被切掉的任务冻结在后台(最多冻结5个),平时只占用极少内存,一旦通过长按后退键出现的任务管理器激活,就瞬间恢复到之前的运行状态。...
  • roc1010
  • roc1010
  • 2012年10月31日 20:12
  • 616

Windows Phone Page 中播放音频,mp3,wma

Windows Phone Page 中播放音频,mp3,wma MediaElement
  • ultrapro
  • ultrapro
  • 2011年03月17日 17:31
  • 575
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows Phone 播放音频之SoundEffect
举报原因:
原因补充:

(最多只允许输入30个字)