预览:
双击qml的model 实现音乐播放以及歌曲信息,播放进度
一、设置上下文属性,使c++类对象能够被qml调用
Player mPlayer;
engine.rootContext()->setContextProperty("Player",&mPlayer);
二、在player类中增加信号函数
signals:
void currentPositionChanged(QString);
void updateTotalTime(int);
void musicChanged(QString);
三、在qml文件中关联qml的函数
PlaySlider{
id:sliderWindow
anchors{
left: stepForward.right
leftMargin: 10*dp
right: collectBtn.left
rightMargin: 10*dp
top:parent.top
topMargin: 1*dp
bottom: parent.bottom
bottomMargin: 1*dp
}
function totalTime(time_){
//console.log("totalTime: "+time_);
sliderWindow.duringTime = time_;
}
function setCurrentMusic(musicName){
//console.log("CurrentMusic: "+musicName);
sliderWindow.musicName = musicName;
}
function setPosition(position_){
sliderWindow.musicDuringText = position_;
//console.log(Player.currentPosition);
sliderWindow.currentPositionValue = (Player.currentPosition*100/sliderWindow.duringTime);
}
Component.onCompleted: {
Player.updateTotalTime.connect(totalTime);
Player.currentPositionChanged.connect(setPosition);
Player.musicChanged.connect(setCurrentMusic);
}
}