如何在 QML 中播放目录中的视频

Posted

技术标签:

【中文标题】如何在 QML 中播放目录中的视频【英文标题】:How to play a video from directory in QML 【发布时间】:2019-05-20 04:58:44 【问题描述】:

我正在尝试在 Qt QML 中播放本地目录中的视频。

现在我从资源文件播放视频,但我的目标是调用本地目录并一一播放该目录中的所有视频。有可能在 Qt QML 中做到这一点吗?

Video 
    id: video
    autoPlay: true
    loops: MediaPlayer.Infinite
    source: "qrc:/Resources/samplevideo.mp4"

【问题讨论】:

file:/替换qrc:/ 【参考方案1】:

您可以获取特定文件夹的文件列表并使用FolderListModel QML Type对其进行迭代:

import Qt.labs.folderlistmodel 2.12
// ...
FolderListModel 
    id: folderModel
    /// Put here URL of folder with videos
    folder: "file:" + "/home/tro/Videos/"
    /// Put a list of file name filters
    nameFilters: ["*.avi"]
    showDirs: false
    onStatusChanged: 
        if (folderModel.status == FolderListModel.Ready) 
            console.log('Folder Model Loaded')
            console.log("Folder list contains ", folderModel.count, "elements:")
            for (var i = 0; i < folderModel.count; ++i) 
                console.log("\t", i, folderModel.get(i, "fileURL"))
            
        
    

此外,请参阅method get 上的文档以更好地了解您可以获得什么(例如,这里我们仅使用 fileURL)。

【讨论】:

以上是关于如何在 QML 中播放目录中的视频的主要内容,如果未能解决你的问题,请参考以下文章

QML 组件“视频”无法播放 Qt 资源文件中的视频文件

在 Windows 上以 QML 播放 RTSP 视频

Qt Quick 多媒体 - 播放音乐和视频

无法在 QML 中播放视频

如何在 Qwidget 中添加视频播放器? [复制]

如何使用 avplayer 从文档目录播放视频文件