我轉換一個本地聲音文件的資源,它內置這在我的XAML:Silverlight 4中的MediaElement播放聲音
<UserControl.Resources>
<my:Uri x:Key="SoundFiles">file:///c:/Audio/HebrewDemo/Shalom.wav</my:Uri>
</UserControl.Resources>
我通過粘貼本地硬盤的MP3文件名成源這樣做,然後點擊了「點「,並選擇」提取價值資源「。
當我運行時,它告訴我「Uri」是無效的,當然,在Intellisense中,我看到其他元素以「uri」開始,但不僅僅是URI本身。
在現實世界中,我想指定一個動態的mp3文件名。例如,我可能有一個用於flashcards的外語單詞數據庫,我想在URL上播放一個聲音文件。不過,我想我會嘗試運行前走......
現在,我想這樣的:
mediaElement1.Source = new Uri(
"http://HebrewResources.com/SoundFiles/Shalom.mp3",
UriKind.Absolute);
mediaElement1.Play();
在Firefox瀏覽器的狀態欄顯示從網站傳送一些數據。但是,我從來沒有聽到任何聲音。難道它只是一個編碼問題?如果編碼不正確,我會得到一個錯誤嗎?
另外,我可以把Uri語句放在加載中或使它在後臺運行,這樣用戶就可以讀取屏幕,同時聲音文件正在下載?換句話說,當他點擊按鈕聽到聲音文件時,理想情況下它已經爲他預先加載。在這個語言學習應用程序中,用戶將看到一個外語單詞,並嘗試自己發音,然後他將點擊「播放」按鈕來聽取聲音來檢查他的結果。
謝謝,我最終在這裏啓動了一個線程,並進行了大量的討論。 http://forums.silverlight.net/forums/p/174934/397840.aspx。我添加了MediaFailed事件,並使用Expression Encoder對文件進行編碼(甚至不知道有一個Expression Encoder)。可悲的是,我怕編碼大約3000個mp3文件。 – NealWalters 2010-04-22 15:11:13
很高興聽到您對它進行了排序,關於編碼您的文件,使用編碼器SDK和Powershell,您可以非常容易地自動執行該流程:)請查看http://www.clarkezone.net/default。 aspx?id = adc33486-4a60-4f3f-9ee0-bb8d81c5c6bf,也許在「表達式編碼器自動化」或類似的東西上搜索一下 – 2010-04-23 00:41:15