如何在c# WPF中从Varbinary(MAX)转换为Video或Audio格式

本文关键字:转换 Video 格式 Audio MAX WPF Varbinary 中从 | 更新日期: 2023-09-27 17:49:41

我使用Visual studio 2010,并使用LINq到SQL将视频或音频上传到数据类型Varbinary(max)的数据库。现在我需要检索这些文件并显示在xaml屏幕上。有人能帮忙吗?以下是我如何从数据库中检索它,到目前为止,我将它添加到一个byte[]数组..(假设这是你所做的??)

var fileValue = from s在上下文中。刺激s.stimID == 1选择s.stimFile;

文件

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

我读过使用File.WriteAllBytes()或类似的东西,但我不知道这是否是我需要做的。谢谢艾玛。

如何在c# WPF中从Varbinary(MAX)转换为Video或Audio格式

一般来说,将大图像或视频存储在数据库中不是一个好的做法。最好将它们组织在磁盘的一个结构化文件夹中,并将文件的路径存储在数据库中。

如果你真的需要将它们存储在数据库中,你的问题取决于文件格式和你使用的API。如果您需要从磁盘读取它们,您的方法是正确的:

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

,然后你可以访问这个文件,用你正在使用的API来加载它。

我仍然建议将大文件存储在数据库之外。

编辑:我想我走得太远了,说这不是一个很好的做法,将它们存储在数据库:)。但是我仍然认为把它们放在数据库之外是有用的。

第二次编辑:从你的评论转换任何媒体到一个文件类型…这是不可能的。您可以在不同的音频类型之间或不同的图像类型之间进行转换,但不能将任何媒体类型转换为单个文件类型。我认为你的问题更侧重于存储和检索blobs到/从数据库,因此我的答案。

图像可以在XAML中查看,但音频和视频是另一回事…我将首先看看如何将Windows Media Player嵌入到您的应用程序中:Windows Media Player SDK所以你可以复制WMP可以播放的任何东西:)