在QT/QML中播放视频播放列表

发布于 2025-01-21 12:24:57 字数 1649 浏览 5 评论 0原文

我正在QML上制作一个简单的播放列表播放器。我正在使用folderlistModel读取文件夹。 我想依次运行每个视频。但是我的播放器只播放第一个视频,然后程序崩溃。我的错误是无效的属性名称thong.qml中打开。我的源代码:

main.qml

Rectangle {
    id: root
    width: 1024
    height: 600
    color: "black"
    property bool onStart: true
    Thong {
        id: playlist
        mediaPlayer: player
        fm: FolderListModel {
            id: fm
            folder: "file:///home/pi/Documents/nhacmp4test"
            showDirs: false
            showDotAndDotDot: false
            nameFilters: ["*.wmv"]
            property bool ready: count > 0
            onReadyChanged: {if (player.status == MediaPlayer.NoMedia) {
                                playlist.setIndex(0);
                                player.play();
                            }}
        }
    }
    MediaPlayer { id: player }
    VideoOutput {
        anchors.fill: parent
        source: player
    }
}/*Thong.qml*/ Item{
id: a
property int index: 0
property MediaPlayer mediaPlayer
property FolderListModel fm
Component.onCompleted: {
    mainWindow.showNormal();
}    
function setIndex(i)
{
    index = i;
    console.log("setting index to: " + i);
    index %= fm.count;
    mediaPlayer.source = "file://" + fm.get(index,"filePath");
    console.log("setting source to: " + mediaPlayer.source);
}
function next()
{
    setIndex(index+1);        
}
Connections {
    target:  a.mediaPlayer
    onStopped: {
        if (a.mediaPlayer.status == MediaPlayer.EndOfMedia) {
            a.next();
            a.mediaPlayer.play();
            console.log("ok");
        }
    }       
}    

I am making a simple playlist player on qml. I am using FolderListModel to read folders.
I want to run each video in turn. But my player only plays the first video, then the program crashes. My error is invalid property name onStopped in Thong.qml. My source code:

main.qml

Rectangle {
    id: root
    width: 1024
    height: 600
    color: "black"
    property bool onStart: true
    Thong {
        id: playlist
        mediaPlayer: player
        fm: FolderListModel {
            id: fm
            folder: "file:///home/pi/Documents/nhacmp4test"
            showDirs: false
            showDotAndDotDot: false
            nameFilters: ["*.wmv"]
            property bool ready: count > 0
            onReadyChanged: {if (player.status == MediaPlayer.NoMedia) {
                                playlist.setIndex(0);
                                player.play();
                            }}
        }
    }
    MediaPlayer { id: player }
    VideoOutput {
        anchors.fill: parent
        source: player
    }
}/*Thong.qml*/ Item{
id: a
property int index: 0
property MediaPlayer mediaPlayer
property FolderListModel fm
Component.onCompleted: {
    mainWindow.showNormal();
}    
function setIndex(i)
{
    index = i;
    console.log("setting index to: " + i);
    index %= fm.count;
    mediaPlayer.source = "file://" + fm.get(index,"filePath");
    console.log("setting source to: " + mediaPlayer.source);
}
function next()
{
    setIndex(index+1);        
}
Connections {
    target:  a.mediaPlayer
    onStopped: {
        if (a.mediaPlayer.status == MediaPlayer.EndOfMedia) {
            a.next();
            a.mediaPlayer.play();
            console.log("ok");
        }
    }       
}    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文