gpt4 book ai didi

c# - 为什么 WinRT MediaElement.SetSource 不执行它应该执行的操作?

转载 作者:太空宇宙 更新时间:2023-11-03 13:43:10 25 4
gpt4 key购买 nike

很简单。使用 MediaElement 时,此代码有效:

TestMedia.Source = new Uri("ms-appx:///Assets/Test.mp4");
TestMedia.MediaFailed += TestMedia_MediaFailed;
TestMedia.AutoPlay = true;

这段代码不会:

StorageFile fileToTest = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Test.mp4"));
var stream = await fileToTest.OpenAsync(FileAccessMode.Read);
TestMedia.SetSource(stream, fileToTest.ContentType);
TestMedia.MediaFailed += TestMedia_MediaFailed;
TestMedia.AutoPlay = true;

没有委托(delegate)方法被调用,也没有异常被抛出(我知道我没有在这里分配它们,但即使我这样做也没关系)。它只是空白。为什么 SetSource 不能代替 Source?我问的原因是我正在尝试对电影文件进行简单的混淆,这样使用我们应用程序的人至少需要付出一些努力来窃取受版权保护的内容。这需要在将流传递到 MediaElement

之前更改内存中的流

编辑 另一条相关信息是媒体元素上的状态更改回调在第二个版本中被调用一次(状态立即为“关闭”)。

最佳答案

根据这个link问题是 TestMedia.AutoPlay = true; 就在 SetSource 之后。这两种方法之间似乎应该有一些延迟。

关于c# - 为什么 WinRT MediaElement.SetSource 不执行它应该执行的操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16293650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com