精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Windows Phone 播放聲音的方法

移動開發
本篇文章的主軸會以播放音效為主,使用不同的方法來播放音效有許多不同的注意事項,一不小心應用程序就會發生非預期例外,在此整理與分享一些使用上的心得筆記。

在以Silverlight為主的Windows Phone 7應用程序中播放音效,其實只有幾種方法,若要播放音效檔,比較常見的會用XNA Framework里的SoundEffect或SoundEffectInstance類別來播 放,在者就是用MediaElement來播放較長的音樂或影片,本篇文章的主軸會以播放音效為主。使用不同的方法來播放音效有許多不同的注意事項,一不小心應用程序就會發生非預期例外,在此整理與分享一些使用上的心得筆記。

由于這兩個類別被編譯在Microsoft.Xna.Framework.dll組件中,因此使用前必須先從專案加入組件參考:

224134ppezthh6m3p63tm1.png

使用時要記得引用Microsoft.Xna.Framework與Microsoft.Xna.Framework.Audio命名空間:

224201c3ewqh5uw0ubzawc.png

由于開發以Silverlight為基礎的應用程序中使用SoundEffect或SoundEffectInstance類別來播放音效僅支援WAV格式 ( *.wav )的聲音檔,所以如果你想播放MP3格式的音效檔的話,必須先透過其他轉檔工具先轉換成WAV 格式才行,而且WAV 檔的格式還有以下 限制:

必須是PCM wave聲音檔,而且必須為RIFF bitstream格式

只能是mono (單音) 或stereo (立體音) 格式

必須為8-bits 或16-bits 的聲音檔

取樣頻率(Sample rate) 必須介于8,000 Hz 到48,000 Hz 之間

備注 :若要播放非WAV的聲音檔或音樂(例如MP3格式的音樂),可改用 MediaElement 來播放。

接著,確定一下載入到專案里的聲音檔的Build Action設定為Content

224237h9xi54k4d4gdhde1.png

 

接著就能開始寫Code 了!在此,我們用簡單的代碼來介紹其使用方法:

 

1.播放短時間的音效,適合使用SoundEffect類別來播放

  1. Stream stream = TitleContainer.OpenStream("Resources/NightAmbienceSimple_01.wav");  
  2. SoundEffect effect = SoundEffect.FromStream(stream);  
  3. FrameworkDispatcher.Update();  
  4. effect.Play(); 

如上4行程序碼應該很容易理解,第1 行載入聲音檔,第2 行建立SoundEffect 物件,第3 行最重要容后再述,第4 行播放聲音。

 

其中最重要的是第3行的FrameworkDispatcher . Update();語法,在使用SoundEffect播放聲音前,一定要先執行這一段語法,否則就會引發例外!

然而,使用SoundEffect類別來播放有個最明顯的限制 ,那就是開始播放音效后就無法透過程序來設定停止播放 ,因此直接使用SoundEffect來播放聲音通常會用來播放比較短的音效(例如1 ~ 3秒)。

2.播放連續的背景音效或較長時間的音效,適合使用SoundEffectInstance類別來播放

  1. Stream stream = TitleContainer.OpenStream("Resources/NightAmbienceSimple_01.wav");  
  2. SoundEffect effect = SoundEffect.FromStream(stream); 
  3. SoundEffectInstance instance = effect.CreateInstance(); 
  4. instance.Play(); 

使用SoundEffectInstance來播放音效前,基本上還是要先取得SoundEffect物件,然后再透過SoundEffect的 CreateInstance來取得一個新的SoundEffectInstance實體, 不需要先執 行 FrameworkDispatcher . Update(); 就可以播放聲音 ,而且也能透過其他方法來暫停、繼續或停止播放音效 ,這是與直 接使用SoundEffect物件來播放聲音時最大的差異。

224406513zswm5ee05iql1.png

另一個與SoundEffect播放音效的差異在于,使用SoundEffectInstance可以設定「重復播放音效」功能,這樣的功能可以運用在需要 提供背景環境音效時使用。 啟用的方法也很簡單,只要在SoundEffectInstance物件上設定IsLooped屬性為true即可。

2244354yx73vwss4vs0d7i.png

§特別注意§

無論使用SoundEffect或SoundEffectInstance來播放音效,這兩種播放音效的方式有3個非常重要的注意事項,分別說明如下:

1. 這兩個類別來自于XNA Framework,因此只要有用到SoundEffect或SoundEffectInstance的頁面,都要在建構子函式 中加上以下程序碼,并且不斷呼叫FrameworkDispatcher . Update();語法,這樣才能讓SoundEffect或 SoundEffectInstance在播放音樂的過程中正確無誤的執行,否則很有可能會遇到音效播放到一半就自動停止的情況! ( 更嚴重者,可能會 導致應用程序直接發生非預期的例外 )

  1. // Timer to simulate the XNA game loop 
  2. // (SoundEffect classes are from the XNA Framework) 
  3. DispatcherTimer XnaDispatchTimer = new DispatcherTimer(); 
  4. XnaDispatchTimer.Interval = TimeSpan.FromMilliseconds(50); 
  5. // Call FrameworkDispatcher.Update to update the XNA Framework internals. 
  6. XnaDispatchTimer.Tick +=  
  7.         delegate { try { FrameworkDispatcher.Update(); } catch { } }; 
  8. // Start the DispatchTimer running. 
  9. XnaDispatchTimer.Start(); 

2. 這兩個SoundEffect與SoundEffectInstance類別在播放音樂時,其執行的方式完全是屬于射后不理 (Fire-and- Forget)型的,所以當啟動聲音播放后會自動在背景運作(透過非同步執行的方式),因此當你希望循序播放兩個聲音檔時,必須小心設計,絕不能連續寫在 一起,這樣會導致兩個音效檔同時播放。 你可以透過DispatcherTimer以非同步的方式來判斷前一個聲音檔是否已播放完畢來做到循序播放的目 的,以下是一個簡易的程序碼范例供參考: ( 注: SoundEffect 與 SoundEffectInstance 都沒有事件可用 )

  1. bool isSound1_Played = false
  2. bool isSound2_Played = false
  3. void dt_Tick(object sender, EventArgs e) 
  4.     if (false == isSound1_Played) 
  5.     { 
  6.         SoundEffect SoundSmall = SoundEffect.FromStream(TitleContainer.OpenStream("Audio/a1.wav")); 
  7.         soundInstance = SoundSmall.CreateInstance(); 
  8.         soundInstance.IsLooped = false
  9.         soundInstance.Play(); 
  10.         isSound1_Played = true
  11.     } 
  12.     else if (false == isSound2_Played && soundInstance.State == SoundState.Stopped) 
  13.     { 
  14.         SoundEffect sound = SoundEffect.FromStream(TitleContainer.OpenStream("Audio/a2.wav")); 
  15.         soundInstance = sound.CreateInstance(); 
  16.         soundInstance.IsLooped = true
  17.         soundInstance.Play(); 
  18.         isSound2_Played = true
  19.     } 

3. 也由于SoundEffectInstance類別射后不理 (Fire-and-Forget)的特性,所以請務必確認在從頁面離開時,必須將 DispatcherTimer與SoundEffectInstance物件都設定停止,否則音樂即便到了下一頁還是會繼續播放的!

  1. protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) 
  2.     base.OnNavigatedFrom(e); 
  3.     dt.Stop(); // Stop the DispatcherTimer 
  4.     soundInstance.Stop(); 

最后,我推薦各位可以下載AppHub上官方提供的Silverlight Sound Sample | Windows Phone范例,里面有些程序 碼可以參考使用,以下節錄LoadSound與LoadSoundInstance這兩個好用的Method給各位參考:

  1. /// <summary> 
  2. /// Loads a wav file into an XNA Framework SoundEffect. 
  3. /// </summary> 
  4. /// <param name="SoundFilePath">Relative path to the wav file.</param> 
  5. /// <param name="Sound">The SoundEffect to load the audio into.</param> 
  6. private void LoadSound(String SoundFilePath, out SoundEffect Sound) 
  7.     // For error checking, assume we'll fail to load the file. 
  8.     Sound = null
  9.     try 
  10.     { 
  11.         // Holds informations about a file stream. 
  12.         StreamResourceInfo SoundFileInfo = App.GetResourceStream(new Uri(SoundFilePath, UriKind.Relative)); 
  13.         // Create the SoundEffect from the Stream 
  14.         Sound = SoundEffect.FromStream(SoundFileInfo.Stream); 
  15.     } 
  16.     catch (NullReferenceException) 
  17.     { 
  18.         // Display an error message 
  19.         MessageBox.Show("Couldn't load sound " + SoundFilePath); 
  20.     } 
  21. /// <summary> 
  22. /// Loads a wav file into an XNA Framework SoundEffect. 
  23. /// Then, creates a SoundEffectInstance from the SoundEffect. 
  24. /// </summary> 
  25. /// <param name="SoundFilePath">Relative path to the wav file.</param> 
  26. /// <param name="Sound">The SoundEffect to load the audio into.</param> 
  27. /// <param name="SoundInstance">The SoundEffectInstance to create from Sound.</param> 
  28. private void LoadSoundInstance(String SoundFilePath, out SoundEffect Sound, out SoundEffectInstance SoundInstance) 
  29.     // For error checking, assume we'll fail to load the file. 
  30.     Sound = null
  31.     SoundInstance = null
  32.     try 
  33.     { 
  34.         LoadSound(SoundFilePath, out Sound); 
  35.         SoundInstance = Sound.CreateInstance(); 
  36.     } 
  37.     catch (NullReferenceException) 
  38.     { 
  39.         // Display an error message 
  40.         MessageBox.Show("Couldn't load sound instance " + SoundFilePath); 
  41.     } 
責任編輯:閆佳明 來源: wpcome
相關推薦

2012-12-27 14:29:38

Android開發流媒體

2009-09-22 14:20:39

C#播放聲音

2011-07-22 15:59:15

iPhone 聲音 文件

2010-01-11 17:30:40

VB.NET播放聲音

2013-04-08 09:31:05

iOS開發系統聲音服務

2009-04-22 08:57:25

Windows 7微軟操作系統

2018-08-17 22:00:22

Linux輸出設備音頻

2018-08-16 14:40:53

Linux輸出設備播放聲音

2012-04-19 08:42:22

春Phone沙龍

2011-11-03 15:55:40

Windows Pho

2012-05-27 20:12:30

Windows Pho

2022-06-01 08:21:24

Java內存API

2013-07-05 15:05:42

Windows PhoWP頁面間傳值方法

2013-06-26 13:25:01

WindowsWindows Pho

2010-12-01 13:55:29

地圖插件Windows Pho

2014-08-15 17:02:41

Windows Pho

2010-10-11 14:42:49

Windows Pho

2013-04-09 12:59:21

WindowsPhon

2012-01-18 09:22:59

Windows Pho設計過程

2010-12-01 13:40:13

樞軸控件Windows Pho
點贊
收藏

51CTO技術棧公眾號

亚洲国产欧美日韩在线观看第一区| 色老头在线观看| 日韩精品电影一区亚洲| 在线播放日韩精品| 潘金莲激情呻吟欲求不满视频| 91高清在线视频| 国产激情一区二区三区| 97av在线视频| 亚洲精品国产精品国自| 秋霞影院一区| 色综合天天综合色综合av| 亚洲欧美电影在线观看| 亚洲精品一区二区三区新线路| 国产手机视频一区二区| x99av成人免费| 亚洲综合自拍网| 亚洲视频资源| 色综合av在线| 在线观看污视频| 久久久pmvav| 国产成人免费视频| 国产精品久久久久久亚洲影视| 神马久久精品综合| 九九综合九九| 亚洲成人xxx| 九九九在线观看视频| 超碰成人av| 亚洲天天做日日做天天谢日日欢 | 久久久久久高潮国产精品视| 美女爆乳18禁www久久久久久| 999久久久精品一区二区| 欧美日韩国产另类一区| 国产av无码专区亚洲精品| 日本无删减在线| 国产精品国产馆在线真实露脸 | 欧美精品久久久久久久久久丰满| 国产精品亚洲视频| 国产精品中文久久久久久久| www.国产com| 精品96久久久久久中文字幕无| 久久精品99久久久久久久久| 欧美激情 一区| 国产精品手机在线播放| 日韩va亚洲va欧洲va国产| 国产乱国产乱老熟300部视频| 亚洲国产伊人| 欧美情侣在线播放| 黄色永久免费网站| 成人视屏在线观看| 91久久精品网| 国产情侣av自拍| 第四色男人最爱上成人网| 精品久久中文字幕久久av| 国产精品无码人妻一区二区在线| 宅男在线观看免费高清网站| 亚洲三级在线播放| 中文字幕中文字幕99 | 国产精品久久久久aaaa| 日韩免费中文专区| 都市激情一区| 国产精品天天摸av网| 影音先锋欧美资源| 成人av黄色| 一区二区三区四区在线免费观看| 日韩欧美一级在线| 第一中文字幕在线| 午夜精品一区二区三区三上悠亚 | 中文字幕另类日韩欧美亚洲嫩草| 外国成人激情视频| 欧美黄色片在线观看| 久久精品国产亚洲AV无码麻豆 | 日日躁夜夜躁aaaabbbb| 欧美a一级片| 日韩一区二区三区精品视频| 人妻体体内射精一区二区| 成人高潮视频| 精品视频偷偷看在线观看| 欧美 日韩 国产 成人 在线观看| 欧洲激情综合| 免费99精品国产自在在线| 久久免费播放视频| 国产欧美一区二区色老头| 国产精品成人播放| 国产精品一区二区免费视频| 成人美女视频在线观看18| 狼狼综合久久久久综合网| shkd中文字幕久久在线观看| 亚洲视频在线一区二区| 欧美日韩福利在线| 电影天堂国产精品| 欧美一区二区三区色| 制服丝袜在线第一页| 国产精品探花在线观看| 美女福利精品视频| 一级片视频在线观看| 国精产品一区一区三区mba视频| 亚洲影院污污.| 在线观看xxx| 亚洲日本在线a| 国产欧美高清在线| 精品国产乱码一区二区三区| 精品亚洲精品福利线在观看| 97在线观看免费高| 香蕉久久国产| 999在线观看免费大全电视剧| 巨骚激情综合| 亚洲.国产.中文慕字在线| xxx国产在线观看| 香蕉久久夜色精品国产更新时间| 精品国产一区二区三区四区在线观看| 日韩成人在线免费视频| 麻豆91在线观看| 精品欧美一区二区久久久伦| 二区三区四区高清视频在线观看| 欧美日韩视频免费播放| 初高中福利视频网站| 不卡中文字幕| 欧美亚洲国产成人精品| 精品国产999久久久免费| 国产网红主播福利一区二区| 久久精品xxx| 成人动漫视频在线观看| 国产亚洲精品久久久| 日韩精品一区二区三区国语自制| 精品一区二区三区av| 日韩福利一区二区三区| 漫画在线观看av| 精品日韩av一区二区| 91日韩中文字幕| 久久99国产精品久久99果冻传媒| 欧美在线播放一区| 三级在线观看视频| 精品卡一卡二卡三卡四在线| 艳妇荡乳欲伦69影片| 蜜桃av一区二区在线观看| 欧美日韩国产三区| 深夜成人在线| 亚洲激情久久久| 日本少妇毛茸茸高潮| 国产传媒一区在线| 欧美aaa在线观看| 亚洲日日夜夜| 久久国产精彩视频| 国内毛片毛片毛片毛片| 亚洲欧美日韩国产综合| 免费网站在线观看黄| 91久久夜色精品国产按摩| 国产精品视频播放| aaa在线免费观看| 欧美日韩日日骚| 97精品在线播放| 国模娜娜一区二区三区| 91免费视频黄| 88久久精品| 国产69精品久久久久99| 手机看片一区二区| 欧美性猛交xxxxx水多| 97超级碰碰碰| 超级砰砰砰97免费观看最新一期| 999国产精品视频| 成人av番号网| 亚洲色图美国十次| 欧美一二三区精品| 国产无码精品在线观看| 成人动漫av在线| 欧美日韩二三区| 久久av电影| 国产伦精品免费视频| 蜜桃视频在线观看免费视频网站www| 欧美日韩电影一区| 久久国产在线观看| 91女神在线视频| 91香蕉视频污版| 亚洲mv大片欧洲mv大片| 国产91亚洲精品一区二区三区| 91破解版在线观看| 亚洲乱码国产乱码精品精| 亚洲国产无线乱码在线观看| 亚洲欧美国产三级| 日本一卡二卡在线| 三级欧美在线一区| 伊人天天久久大香线蕉av色| 中文字幕一区二区三区日韩精品| 97高清免费视频| 阿v免费在线观看| 日韩免费一区二区| 欧美三级韩国三级日本三斤在线观看 | 中国av一区二区三区| 日韩成人精品视频在线观看| 欧美视频网站| 日韩精彩视频| 香蕉大人久久国产成人av| 欧美在线精品免播放器视频| 9色在线视频网站| 精品久久久久久久一区二区蜜臀| 国产精品一区二区三区四| 国产精品三级电影| 无码人妻一区二区三区免费n鬼沢| 香蕉久久夜色精品国产| 一区二区日本伦理| 日韩欧美ww| 亚洲自拍欧美色图| **欧美日韩在线观看| 欧美插天视频在线播放| 黄色av免费在线观看| 日韩一级免费观看| 亚洲中文无码av在线| 亚洲国产视频在线| 日本视频在线免费| 91网上在线视频| gogo亚洲国模私拍人体| 日韩影院免费视频| 国产免费黄色一级片| 日韩在线第七页| 欧美高清视频一区| 91精品国产自产在线丝袜啪| 国产日韩精品在线播放| 免费成人直播| 国内成人精品一区| av网站大全在线| 中文字幕精品在线视频| 亚洲欧美丝袜中文综合| 日韩视频在线永久播放| 在线播放一级片| 色国产精品一区在线观看| 日韩污视频在线观看| 亚洲激情欧美激情| 99热6这里只有精品| 国产日韩欧美不卡在线| 搡老熟女老女人一区二区| 国产盗摄女厕一区二区三区| 国产不卡的av| 精品一区二区三区在线观看国产| 亚洲 中文字幕 日韩 无码| 国产欧美日韩一区二区三区在线| 九九热只有这里有精品| 欧美xxx在线观看| 国产女主播av| 一二三区不卡| 看一级黄色录像| 亚洲女同中文字幕| 艳母动漫在线观看| 91精品国产福利在线观看麻豆| 伊人色综合影院| 99久精品视频在线观看视频| 亚洲免费久久| 五月天久久久| 四虎4hu永久免费入口| 欧美福利专区| 国产一级不卡视频| 影院欧美亚洲| 日韩一级性生活片| 99亚洲视频| 美女福利视频在线| 日韩成人免费看| 激情视频免费网站| 精品一区二区三区蜜桃| 69久久精品无码一区二区| 国产成人精品一区二区三区四区 | 亚洲欧美综合一区二区| 亚洲欧美中文字幕| 成年人视频网站在线| 色偷偷亚洲男人天堂| 免费观看在线黄色网| 欧美成人小视频| www.色在线| 日韩av免费在线看| 日韩电影精品| 97超碰资源| 农村少妇一区二区三区四区五区 | 国产ts在线播放| 中文字幕av不卡| 激情综合网五月天| 狠狠做深爱婷婷久久综合一区| 美日韩一二三区| 欧美在线制服丝袜| 国产99对白在线播放| 亚洲成人网在线| 狠狠狠综合7777久夜色撩人 | 久草在线中文最新视频| 日韩免费在线观看视频| 日本一区二区中文字幕| 粉嫩av一区二区三区免费观看 | 黄色高清视频网站| 激情婷婷欧美| 亚洲36d大奶网| 成人性视频免费网站| 免费在线观看你懂的| 国产精品成人一区二区艾草| 国产污片在线观看| 欧美丝袜丝nylons| 蜜桃91麻豆精品一二三区| 亚洲女人被黑人巨大进入al| 黄色小网站在线观看| 欧美在线视频一区二区| 青娱乐极品盛宴一区二区| 国产伦精品一区二区三区照片91 | 亚洲日本va中文字幕| 欧美精品与人动性物交免费看| 99久久夜色精品国产亚洲1000部 | 蜜臀av性久久久久蜜臀av麻豆| 国产黑丝在线视频| 久久久久久毛片| 久久黄色免费视频| 欧美视频在线一区| 欧美 日韩 国产 精品| 色偷偷9999www| 中文av在线全新| 99高清视频有精品视频| 欧美亚洲精品在线| 播放灌醉水嫩大学生国内精品| 韩国成人在线视频| 一区二区黄色片| 亚洲一区在线观看免费| 一级黄色免费看| 亚洲人成免费电影| 美女av在线免费看| 豆国产97在线| 女人天堂亚洲aⅴ在线观看| 我看黄色一级片| 2024国产精品| 成年人免费看毛片| 日韩欧美一区在线观看| 免费人成在线观看播放视频| 日本中文字幕久久看| 久久夜色电影| 日韩欧美不卡在线| 国产不卡免费视频| 91精品一区二区三区蜜桃| 欧美亚洲一区三区| 国产精品麻豆一区二区三区| 国产91精品黑色丝袜高跟鞋| 成人av综合网| av在线观看地址| 成人国产亚洲欧美成人综合网 | 中文字幕丰满乱子伦无码专区| 一区二区三区91| 国产夫妻性生活视频| 久久伊人精品天天| 91成人app| 自拍偷拍视频在线| 韩国欧美国产一区| www色aa色aawww| 91精品国产综合久久蜜臀| 免费黄色电影在线观看| 成人黄在线观看| 91成人国产| 又黄又爽又色的视频| 伊人夜夜躁av伊人久久| 精品人妻无码一区二区色欲产成人 | 最新97超碰在线| 国产精品视频1区| 99久久夜色精品国产亚洲1000部| 拔插拔插华人永久免费| 亚洲免费视频中文字幕| www.午夜激情| 97视频在线观看免费高清完整版在线观看 | 国产在线精彩视频| 久久久福利视频| 丝袜诱惑亚洲看片| 婷婷丁香综合网| 制服视频三区第一页精品| av片在线观看| 国产精品theporn88| 国产精品尤物| 国产精品无码无卡无需播放器| 欧美理论电影在线| 四虎亚洲精品| 久久精品人人做人人爽电影| 视频一区二区不卡| 超碰在线国产97| 亚洲精品国精品久久99热一| 欧美香蕉视频| 欧美一级黄色录像片| caoporen国产精品视频| 久久久精品毛片| 久久久999国产| 精品视频高潮| 天天操天天摸天天爽| 亚洲欧美影音先锋| 日本毛片在线观看| 国产999在线| 午夜欧美精品久久久久久久| 99久久人妻无码中文字幕系列| 欧美性视频一区二区三区| www国产在线观看| 免费成人深夜夜行视频| 精品一区二区三区蜜桃| 五月婷婷中文字幕| 久久精品国产亚洲| 女同一区二区三区| 亚洲一区二区在线视频观看| 亚洲高清免费一级二级三级| 国产视频第一页在线观看| 91亚洲国产成人久久精品网站| 国产美女一区| 青青草手机在线观看| 国产一区二区三区毛片| 96sao在线精品免费视频| 欧美精品性生活|