QML播放器切换文件路径

来源:互联网 发布:levered beta知乎 编辑:程序博客网 时间:2024/06/06 03:08

点击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