2011-04-12 72 views
0

轉換成視頻或音頻格式,在C#中,我使用的Visual Studio 2010,並使用LINQ to SQL的雙方視頻或音頻上傳到數據類型VARBINARY(最大值)的數據庫。我現在需要檢索這些文件並顯示在xaml屏幕上。誰能幫忙?這是我如何從數據庫中檢索它現在爲止,我把它添加到一個byte []數組..(假設這是你做了什麼?)從s在context.Stimulis 其中s.stimID如何從VARBINARY(MAX)WPF

VAR fileValue = == 1 select s.stimFile;

byte [] file = fileValue.Single()。ToArray();

我讀過使用File.WriteAllBytes()或者類似的東西,但我不知道這是什麼,我需要做的。 謝謝艾瑪。

回答

0

通常,在數據庫中存儲大圖像或視頻並不是一種好的做法。將它們組織在磁盤中的結構化文件夾中並將數據存儲到文件的路徑中會好得多。

如果你真的需要將它們存儲在數據庫中,你的問題取決於文件格式和使用的API。如果需要從磁盤中讀取它們,你的做法是正確的:

File.WriteAllBytes (strng path, byte[] bytes) 

那麼你就可以訪問該文件與您正在使用的API的加載它。

我仍然建議將大文件存儲在數據庫之外。

編輯:我覺得我走的太遠說它不是將它們存儲在數據庫中的一個很好的做法:)。但我仍然認爲將它們放在數據庫之外非常有用。

第二編輯:從您的轉換任何媒體,以一種文件類型的評論......這是不可能的。您可以在不同的音頻類型之間進行轉換,也可以在不同的圖像類型之間轉換,但不能將任何媒體類型轉換爲單一文件類型我認爲你的問題更關注於從數據庫存儲和檢索blob,因此我的答案。

圖像可以在XAML中查看,但音頻和視頻是另一回事...... 我會通過查看到嵌入Windows媒體播放器到你的應用程序啓動: Windows Media Player SDK 這樣你就可以複製任何WMP可以播放:)

+0

您好,感謝您的回覆,當你說了其更好它們保存在磁盤和剛剛保存的路徑,數據庫文件,請ü意味着,盤在客戶端機器?或者將它們保存在程序中?文件格式可能會有一些不同的視頻/音頻類型,我可以將它們保存爲數據庫中的二進制文件,並希望我可以將它們全部轉換回只有一種類型的文件(如果可能的話)。例如當他們想要在屏幕上查看它們時,它們都是mpeg。 – 2011-04-13 20:15:02

+0

@Emma Mack - 您可以將文件存儲在DB所在的同一磁盤中,或者存儲在同一臺計算機上的另一個驅動器中。你可以根據自己的需要在文件夾中整理它們(例如,每種類型,每天或每月有子文件夾,......適合你最好的應用程序)。然後,只需在數據庫中存儲要顯示給用戶的信息(例如名稱,創建日期,起源,任何...以及文件的路徑)。操縱圖像,視頻等的系統用於以這種方式工作。 – Haplo 2011-04-13 20:43:42

+0

@Emma Mack - 我編輯了我的答案,添加了更多信息。希望能幫助到你! – Haplo 2011-04-13 20:55:26

相關問題