QML播放器切换文件路径

点击open会打开一个文件选择框. 选择你想要播放的视频就OK了..

通过这种方式定义了一个属性. 我是当变量来用了..
[html] view plain copy
在CODE上查看代码片派生到我的代码片

property string path : "file:///c:/test1.avi"  

文件对话框的定义:
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片

FileDialog {  
        id: fileDialog  
        title: "Please choose a file"  
        onAccepted: {  
            path = fileDialog.fileUrls[0].toString();  
            console.log("You chose: ",path)  
            mediaPlayer.source = path  
        }  
        onRejected: {  
            console.log("Canceled")  
        }  
    }  

全部代码如下:
[javascript] view plain copy
在CODE上查看代码片派生到我的代码片

import QtQuick 2.4  
import QtQuick.Controls 1.3  
import QtQuick.Window 2.2  
import QtQuick.Dialogs 1.2  
import QtMultimedia 5.4  

ApplicationWindow {  
    title: qsTr("Hello World")  
    width: 640  
    height: 480  
    visible: true  
    property string path : "file:///c:/test1.avi"  

    MediaPlayer {  
        id: mediaPlayer  
        source: path  
        autoPlay: true  
    }  

    Rectangle {  
        color: "black"  
        anchors.fill: parent  

        VideoOutput {  
            id: video  
            anchors.fill: parent  
            source: mediaPlayer  
        }  
    }  

    Rectangle {  
        id: progressBar  
        anchors.left: parent.left  
        anchors.right: parent.right  
        anchors.bottom: parent.bottom  
        anchors.margins: 0  
        height: 10  
        color: "lightGray"  

        Rectangle {  
            anchors.left: parent.left  
            anchors.top: parent.top  
            anchors.bottom: parent.bottom  
            width: mediaPlayer.duration>0?parent.width*mediaPlayer.position/mediaPlayer.duration:0  
            color: "darkGreen"  
        }  

        MouseArea {  
            property int pos  
            anchors.fill: parent  

            onClicked: {  
            if (mediaPlayer.seekable)  
                pos = mediaPlayer.duration * mouse.x/width  
                mediaPlayer.seek(pos)  
            }  
        }  
    }  

    FileDialog {  
        id: fileDialog  
        title: "Please choose a file"  
        onAccepted: {  
            path = fileDialog.fileUrls[0].toString();  
            console.log("You chose: ",path)  
            mediaPlayer.source = path  
        }  
        onRejected: {  
            console.log("Canceled")  
        }  
    }  

    menuBar: MenuBar {  
        Menu {  
            title: qsTr("&File")  
            MenuItem {  
                text: qsTr("&Open")  
                onTriggered: {  
                    fileDialog.open()  
                }  
            }  
            MenuItem {  
                text: qsTr("E&xit")  
                onTriggered: Qt.quit();  
            }  
        }  
    }  

    MainForm {  
        anchors.fill: parent  
        button1.visible: false  
        button2.visible: false  
        button3.visible: false  

        button2.onClicked: messageDialog.show(qsTr("Button 2 pressed"))  
        button3.onClicked: messageDialog.show(qsTr("Button 3 pressed"))  

        button1.onClicked: {  

        }  
    }  

    MessageDialog {  
        id: messageDialog  
        title: qsTr("May I have your attention, please?")  

        function show(caption) {  
            messageDialog.text = caption;  
            messageDialog.open();  
        }  
    }  
}  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值