2012-01-06 122 views
0

我有一個應用程序在那裏我有一些預先錄製的文本到語音(因爲它是文本到語音沒有默認支持)與MediaElement的播放mp3,然後我想打他們這樣無法在WP7模擬器

var mediaElement = new MediaElement(); 
mediaElement.Source = new Uri("sound.mp3", UriKind.Relative); 
mediaElement.Position = new TimeSpan(0); 
mediaElement.Play(); 

但是沒有任何反應,我是否需要在我的用戶界面中創建「真實」控件?我只是想在事件發生時播放這種聲音,我沒有任何錯誤或沒有任何事情,如果mp3在默認文件夾中,沒有任何問題。

回答

4

不播放的原因是因爲您沒有將其添加到可視化樹中。當您以編程方式創建MediaElement時,需要將其添加到樹中的某處。您必須在您的用戶界面中創建一個「真正的控件」,但不一定要看。

var mediaElement = new MediaElement(); 
mediaElement.Source = new Uri("sound.mp3", UriKind.Relative); 
mediaElement.Position = new TimeSpan(0); 
LayoutRoot.Children.Add(mediaElement); //Add to visual tree 
mediaElement.Play(); 
0

這取決於mediaElement被聲明後代碼中發生了什麼。目前,只要您聲明的方法結束,mediaElement就會超出範圍並有資格進行垃圾回收。

您需要:

  • mediaElement的東西,也許你的UI
  • mediaElement靜態字段的類

一切都表示,正在播放通過支持MediaElement模擬器?

+0

Mediaelement變量是一個全局變量,所以它應該保持在範圍內,只需鍵入var infront以使其更容易閱讀。 – Mech0z 2012-01-06 12:23:44