栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

qml 音乐播放器

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

qml 音乐播放器

最近学习了qml的QtMultimedia,看了一个音乐播放器的例子,非常简单。
主要就是播放器的模块比较重要,因为它可以获得播放的时长那个,进度,等等,然后用按钮添加播放器模块的事件,用text文本框来显示播放的进度以及状态。

import QtQuick 2.5
import QtMultimedia 5.0
import QtQuick.Window 2.0
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.0
Window{
   visible: true;
   width: 1000;
   height: 600;
   minimumHeight: 320;
   minimumWidth: 480;
   title: "music";
   property var utilDate: new Date();
   Image {
       anchors.horizontalCenter: parent.horizontalCenter;
       fillMode: Image.PreserveAspectFit;

       source: "qrc:/new/prefix1/Image/bk1.jpg";
   }

   function msecString(msecs){
       utilDate.setTime(msecs);
       return Qt.formatTime(utilDate,"mm::ss");
   }
   MediaPlayer{
       id:player;
       source: "C:/Users/zfc/Desktop/image/1.mp3";
       onPositionChanged: {
           //进度
           progress.text=msecString(position)+progress.sDuration;
       }
       onDurationChanged: {
           //时长
           progress.sDuration=" / "+msecString(duration);
       }

       onPlaybackStateChanged: {
           switch(playbackState){
           case MediaPlayer.PlayingState:
               state.text="播放中";
               break;
           case MediaPlayer.PausedState:
               state.text="已暂停";
               break;
           case MediaPlayer.StoppedState:
               state.text="停止";
               break;
           }
       }
   }

   Row{
       id:controller;
       anchors.top: parent.verticalCenter;
       anchors.horizontalCenter: parent.horizontalCenter;
       anchors.topMargin: 24;
       spacing: 100;
       Button{
           width: 50;
           height: 50;
           background: Image {
               source: "qrc:/new/prefix1/Image/pre2.png";
           }
           onClicked: {
               if(player.seekable){
                   player.seek(player.position-5000);
               }
           }
       }

       Button{
           width: 50;
           height: 50;
           background: Image {
               source: "qrc:/new/prefix1/Image/pause2.png";
           }
           onClicked: {
               player.pause();
           }
       }

       Button{
           width: 50;
           height: 50;
           background: Image {
               source: "qrc:/new/prefix1/Image/play2.png";
           }
           onClicked: {
               player.play();
           }
       }

       Button{
           width: 50;
           height: 50;
           background: Image {
               source: "qrc:/new/prefix1/Image/like.png";
           }
           onClicked: {
               player.stop();
           }
       }

       Button{
           width: 50;
           height: 50;
           background: Image {
               source: "qrc:/new/prefix1/Image/next2.png";
           }
           onClicked: {
               if(player.seekable){
                   player.seek(player.position+5000);
               }
           }
       }
   }
   Text {
       id: progress
       anchors.top: parent.verticalCenter;
       anchors.horizontalCenter: parent.horizontalCenter;
       anchors.topMargin: -120;

       property string sDuration;
       text: qsTr("text");
   }
   Text{
       id:state;
       anchors.left: progress.left;
       anchors.bottom: progress.top;
       anchors.bottomMargin: 4;
       color: "red";
       font.pointSize: 32;
   }
}



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号