2010-02-26 41 views
3

1. 我在silverlight中創建了一個音頻播放器。Silverlight中的音頻切割器

在該播放器中,用戶能夠選擇歌曲的一部分以保存爲鈴聲。

但我得到的時間來自..但我必須削減流或音頻流的部分部分,並將其保存到服務器迪克。

Plz建議我如何將選定的音頻時間長度轉換爲流或字節數組.. ..?

- 關於這個問題的附加信息: 2. 我在silverlight中創建了一個鈴聲音頻播放器。在該用戶中可以選擇可以剪切並保存爲音頻文件的部分。

我無法保存流的磁盤..它是給下面的錯誤:

錯誤1.嘗試訪問故障的系統IO FileInfo的OpenWrite

plz幫助

的方法 - - 有關此問題的其他信息: 3. MediaStreamSample的使用& MediaHlement中的Medialight中的MediaStreamSource類是什麼?

它是否有助於削減音頻文件的一部分,以創建一首歌曲的鈴聲?

回答

0

錯誤1.試圖訪問該方法失敗的系統IO FileInfo OpenWrit,你得到這個錯誤因爲安全原因。在保存到磁盤之前,您應該將SaveFileDialog提示給用戶,然後僅將文件保存到磁盤。

+0

我必須在服務器端保存該流而不是在客戶機上。 – 2010-02-26 11:50:55

1

如果你需要保存到服務器,那麼你需要獲得該數據到服務器。

只要保存(如答案)就會嘗試保存到客戶機器上。你需要做的是通過WCF服務或ASHX處理程序等將數據上傳到服務器。我做了類似的事情 - 通過Stream將Silverlight客戶端上的MP3文件上傳到WCF服務,效果很好。

下一步:您需要確保您使用的任何分割過程適應音頻格式 - 即您可能不能分割二進制文件。你用什麼格式,mp3?

我之前使用過一種叫mp3plt的東西來分割mp3。您可以將源代碼重新編譯爲兼容Silverlight的庫,假設它是用可以使用的東西編寫的,source here。您可以查看mp3規格,看看是否可以分割二進制文件,在這種情況下,將持續時間縮短(用戶選擇的時間),然後再乘以比特率(kb/s *秒= kb)會給你在你可以剪切的文件byte []中的位置。