【问题标题】:How to save System.Media.DateEncoded in UWP video StorageFile如何在 UWP 视频 StorageFile 中保存 System.Media.DateEncoded
【发布时间】:2020-05-25 01:26:07
【问题描述】:

对于给定的StorageFile,命名文件,我可以通过调用检索一些属性

await file.Properties.RetrievePropertiesAsync(propertiesToRetrieve)

更改它们并正确保存

await file.Properties.SaveProperties(propertiesToSave)

但是,每当我尝试将 System.Media.DateEncoded 属性保存到视频文件(MP4 和 MOV)时,我都会在 try/catch 块中收到 The method or operation is not implemented 错误,但我可以毫无问题地读取它们。

有没有办法用当前的 API 保存这样的属性?

谢谢

添加信息

DateTimeOffset 来自 DatePicker 与 Timepicker 的组合,它被注入到类似于下面的函数中。为了简化代码,我在下面使用了一个硬编码的 DateTimeOffset 值。仍然会以相同的消息引发异常。我保证文件不为空(未显示)。

    public async Task<bool> SaveDateEncoded(StorageFile file)
    {
        try
        {
            var dateTimeOffset = new DateTimeOffset(2000, 09, 03, 3, 50, 13, new TimeSpan(2, 0, 0));
            var props = new List<KeyValuePair<string, object>>()
            {
                        new KeyValuePair<string, object>("System.Media.DateEncoded",dateTimeOffset),
            };
            await file.Properties.SavePropertiesAsync(props);
            return true;
        }
        catch (Exception ex)
        {

            return false;
        }
    }

【问题讨论】:

  • 某些属性在设计上是只读的,即使技术上可行,底层属性处理程序也不允许设置它们。这可能是其中之一,特别是如果您以相同的方式更改其他属性成功。我不认为底层 Media Foundation MP4 shell 属性处理程序被记录以准确说明哪些属性是只读的。
  • @RomanR,你的意思是没有办法知道一个属性是否是只读的?是的,该方法适用于其他属性,毫无疑问。
  • 技术上怎么可能,你有什么提示吗?谢谢
  • 当我选择一个 MOV 视频文件并为“System.Media.DateEncoded”属性设置一个值,然后使用 SavePropertiesAsync 方法保存它时,效果很好。之后,我还可以从属性中读取值。那么能否提供一个简单的样本,可以复制给我们测试?
  • 好的,这是个好消息,我会提供这个,因为我还看不到如何解决这个问题。

标签: uwp storagefile


【解决方案1】:

我收到一个方法或操作未实现错误

此问题已在版本 1903,1909 中得到修复。

请看:

2020 年 2 月 27 日 - KB4535996(操作系统内部版本 18362.693 和 18363.693)

https://support.microsoft.com/en-us/help/4535996/windows-10-update-kb4535996

解决了编辑 .mov 文件属性的问题。

所以你可以在你的 1903/1909 机器上安装 KB4535996,问题就会得到解决。

【讨论】:

  • 这个包解决了问题,但似乎破坏了应用程序打包。请参阅developercommunity.visualstudio.com/content/problem/934967/… 进行跟进
  • 我又遇到了同样的问题,但现在有一个 MOV 文件。甚至文件资源管理器也拒绝更改日期,称这是一个只读属性。你告诉我你用 MOV 测试过它并且它有效,我一个月前也这样做了,它有效。所以这似乎是一个尚未修复的 Windows 问题,因为 KB4535996 已被删除(因为它会导致您很可能知道的其他问题)。如果可能,现在让我来
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-04
  • 2018-04-11
  • 2020-04-23
  • 1970-01-01
  • 2020-09-05
相关资源
最近更新 更多