- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
场景:我们有一个将要离线发布的 silverlight 5 OOB 应用程序 (DVD ROM)。此应用程序用作某些教育内容的媒体播放器。为了保护 DVD ROM 附带的视频文件,我决定用每个用户唯一的 key 加密视频文件,运送内容并在需要播放时解密。
问题:如何逐步动态解密媒体?我不想因为内存和性能问题而一次解密整个文件。 MediaElement
支持流类型的来源,但是当我使用 CryptoStream
解密视频文件并将其传递给 MediaElement.SetSource
方法时,出现以下异常被抛出:
{System.Windows.Media.DrmException: 3121 3121 An error has occurred.
at MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
at MS.Internal.XcpImports.MediaElement_SetStreamSource(MediaElement element, Stream stream)
at System.Windows.Controls.MediaElement.SetSource(Stream stream)
at SilverlightApplication4.MainPage.button1_Click(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName, UInt32 flags)}
我使用 AES 算法是用于加密操作的 AesManaged
类。
提前致谢。
最佳答案
您是否将 MediaElement.SetSource 设置为加密流或包装它的流?
FileStream stream = new FileStream(“mymedia.avi”, FileMode.Open,FileAccess.Read);
CryptoStream cs = new CryptoStream(stream, alg.CreateDecryptor(), CryptoStreamMode.Read);
StreamReader reader = new StreamReader(cs);
正如有人已经指出的那样,不要将 key 与产品一起存储。找到存储在二进制文件中的 key 真的很容易。
关于c# - MediaStreamSource 和 CryptoStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6722999/
我们正在尝试在 WP7 模拟器上使用 MediaStreamSource 播放 H.264 流。但是遇到了 3100 视频错误: 在 Mp4MediaStreamSource 的重写方法 OpenMe
如您所知,您可以使用 MediaElement.SetSource(Stream)要将媒体源设置为本地硬盘驱动器上的文件等流,现在假设视频由多个流组成。例如,一个大约 1 小时的视频被分成 6 个 1
我有一个 UWP 项目,我想使用 Windows.Media.Audio API 来播放文件。我不想使用 FileInputNode,而是想流式传输我的文件,以便我可以精确地确定各种计时属性。 我找到
场景:我们有一个将要离线发布的 silverlight 5 OOB 应用程序 (DVD ROM)。此应用程序用作某些教育内容的媒体播放器。为了保护 DVD ROM 附带的视频文件,我决定用每个用户唯一
根据 msdn,MediaStreamSource.AudioBufferLength “获取或设置音频缓冲区的长度”。但是那个长度是多少?毫秒? sample ?字节?任何人?布勒? 最佳答案 毫秒
有人用过这个吗?我相信我搞砸了 CodecPrivateData,但我找不到任何似乎有效的 WAVEFORMTEX FormatTags。我尝试了 0xFF00、0x1016 和 0x0116。我使用
我正在尝试通过 MediaStreamSource 将 Shoutcast 流式传输到我的 MediaElement。这是一个包含一些基础知识的代码。使用 ReadData 方法我可以下载原始音频数据
我有一个 MediaStreamSource这是动态生成的,我想绑定(bind)到 MediaElement。不幸的是 Source属性只接受 URI,所以我不走运。 有一种方法SetSource我可
我已经编写了一个自定义媒体流源,它可以播放来自不断增长的源文件(mpeg 传输流)的媒体。一旦它到达其媒体流的末尾,它就会从媒体文件中读取新的持续时间并继续传送样本。 MediaElement 连续播
我正在尝试使用 Web Audio Api 获取每分钟节拍数 (BPM),就像在以下链接( http://joesul.li/van/beat-detection-using-web-audio/ 或
背景 我正在尝试使用发现的 MediaStreamSource 实现在 Silverlight 4 中流式传输波形文件 here .问题是我想在文件还在缓冲的时候播放它,或者至少在它缓冲的时候给用户一
我是一名优秀的程序员,十分优秀!