【问题标题】:qml video metadata: undefined. get video file informationqml 视频元数据:未定义。获取视频文件信息
【发布时间】:2021-12-21 14:28:00
【问题描述】:

我想获取视频元数据,但我有问题

代码:

          Video
               {
                   id: videoList
                   anchors.left: parent.Left
                   width: 110
                   height: 80
                   autoLoad: true
                   muted: true
                   volume: 0.4
                   fillMode: Image.PreserveAspectCrop
                   source: "file://" + root.files[modelData]

                   Component.onCompleted:
                   {
                       videoList.seek(1000)
                       print("Size: " + videoList.metaData.resolution)
                   }
                }

输出:

qml:大小:未定义

请帮我解决这个问题。谢谢

【问题讨论】:

  • @Parisa.H.R salam,不,我这样做了,但未定义仍然存在
  • 所以您的文件没有元数据信息。也分享您有问题的文件。
  • @Parisa.H.R 我的文件是 .mp4,我可以在我的 Android 设备应用程序中显示它。我想一定有一些信息,比如尺寸。但我什么也得不到
  • 请提供minimal reproducible example,以便我们运行和测试它。

标签: android c++ qt video qml


【解决方案1】:

我认为您只需要通过检查其状态等到视频完成加载即可。尝试将此添加到您的 Video 对象:

 onStatusChanged: {
     if (status == MediaPlayer.Loaded) {
         print("Size: " + videoList.metaData.resolution)
     }
 }

【讨论】:

  • 我对此进行了测试,我明白永远不会加载 ummm 真的很混乱。看到这个onStatusChanged: { print("******* Status Changed *******") if (videoList.status == MediaPlayer.Loaded) { print("Size: " + videoList.metaData.resolution) } } 并说状态已更改但不会进入我们的 if
  • 请不要尝试在评论中编写大块代码。它不可读。如果需要,您可以在帖子中添加更新。
  • 我是新来的。对不起。好的
  • 我编辑了我的帖子。那样可以么?。但我看不到那个编辑
  • 我没有看到您的编辑。但无论如何,尝试打印出status 的实际值。也许您没有获得Loaded 状态,因为加载失败? (换句话说,它可能是一个糟糕的视频。)
猜你喜欢
  • 2011-10-06
  • 1970-01-01
  • 2019-07-07
  • 2013-05-09
  • 2015-08-23
  • 1970-01-01
  • 2015-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多