qml 音乐播放器的进度条
进度条采用qml的Slider组件
样式什么的,网上很多。我就不列举了。接下来主要说明,进度条是怎样按秒移动的。
Slider {
id: control
value: 0
stepSize: 0.01
onValueChanged: {
txt_time_start.text =formation(control.value)
txt_time_end.text = formation(maximumValue);
}
}
//timer启动
Timer{
id:time
running: false
repeat: true
// interval: 500
onTriggered:{
control.value = control.value + control.stepSize
}
}
//取得小数点后两位
function splitAndRound(num) {
num = num * Math.pow(10, 2);
return (Math.round(num)) / (Math.pow(10, 0));
}
//歌曲的格式都是00:00 为了保持格式因为补0
function formation(controlvalue)
{
//补0
function pad(num, n) {
var len = num.toString().length;
while(len < n) {
num = "0" + num;
len++;
}
return num;
}
var min = Math.floor(splitAndRound(controlvalue)/60)
var sec = splitAndRound(controlvalue)%60
return(pad(min,2) + ":" + pad(sec,2))
}
还没有搞清楚的是slider属性。在1.4版本里有maximumValue,minimumValue属性来改变滑块的最大值与最小值。
到了2.3版本变成了from与to。共同点value还是0至1之间的小数。我这里用的是2.3版本。 C++实现播放进度的小算法
1)更新控件的主函数
string updateSliderText(int changevalue)
{
double min = ;
double sec = ;
double tempValue = ;
string outputstring = "";
tempValue = double(changevalue);
min = floor(tempValue/);
sec = changevalue%; outputstring = pad(min,) + ":"+ pad(sec,);
return outputstring;
}
2)规范歌曲格式
string pad(int num,int n)
{
string output_string ="";
int len = ;
string s = "";
len = get_length(num);
s = to_String(num);
while(len < n)
{
s = "" + s;
len++;
} return s;
}
int get_length(int x)
{
int leng=;
while(x)
{
x/=;
leng++;
}
return leng; }
string to_String(int n)
{
int m = n;
char s[];
char ss[];
int i=,j=;
if (n < )// 处理负数
{
m = - m;
j = ;
ss[] = '-';
}
while (m>)
{
s[i++] = m % + '';
m /= ;
}
s[i] = '\0';
i = i - ;
while (i >= )
{
ss[j++] = s[i--];
}
ss[j] = '\0';
return ss;
}
想法比较粗糙。。。如果有C++11的话,to_string函数就不用自己写了。。。。
qml 音乐播放器的进度条的更多相关文章
- Android——音乐播放器完善——进度条显示当前播放进度,加可拖动进度条(未待解决完问题)
效果: 问题:可拖动进度条随进度条移动时,会致使音乐卡顿(待解决) xml <?xml version="1.0" encoding="utf-8"?&g ...
- Vue实现mp3音乐播放及动态进度条
今天碰到一个Vue点击mp3播放及进度条动态走动的小功能,记录一下: 首先是通过HTML5 audio标签引入音频: <template> <div class="x-fo ...
- android97 播放音频 有进度条控制
package com.itheima.musicplayer; import android.os.Bundle; import android.os.Handler; import android ...
- 卡拉OK效果的实现-iOS音乐播放器
自己编写的音乐播放器偶然用到这个模块,发现没有思路,而且上网搜了搜,关于这方面的文章不是很多,没找到满意的结果,然后自己也是想了想,最终实现了这种效果,想通了发现其实很简单. 直接上原理: 第一种: ...
- Android开发6:Service的使用(简单音乐播放器的实现)
前言 啦啦啦~各位好久不见啦~博主最近比较忙,而且最近一次实验也是刚刚结束~ 好了不废话了,直接进入我们这次的内容~ 在这篇博文里我们将学习Service(服务)的相关知识,学会使用 Service ...
- android 音乐播放器
本章以音乐播放器为载体,介绍android开发中,通知模式Notification应用.主要涉及知识点Notification,seekbar,service. 1.功能需求 完善音乐播放器 有播放列 ...
- 音乐播放器 EasyMusic (一)
EasyMusic 一. 代码获取 github 上链接为 https://github.com/VincentWYJ/EasyMusic, 感兴趣的朋友可以同步下来看, 欢迎提出宝贵意见或建议. 1 ...
- 用PHP+H5+Boostrap做简单的音乐播放器(进阶版)
前言:之前做了一个音乐播放器(纯前端),意外的受欢迎,然后有人建议我把后台一起做了,正好也想学习后台,所以学了两天php(不要吐槽我的速度,慢工出细活嘛~)然后在之前的基础上也又完善了一些功能,所以这 ...
- Android 实现简单音乐播放器(二)
在Android 实现简单音乐播放器(一)中,我介绍了MusicPlayer的页面设计. 现在,我简单总结一些功能实现过程中的要点和有趣的细节,结合MainActivity.java代码进行说明(写出 ...
随机推荐
- 日志处理(三) logback 手动加载(转)
本文转自:http://www.2cto.com/kf/201302/191149.html 一共两个java文件,第一个是例子,第二个是配置文件加载类; LogbackTest.java /* * ...
- 应用libjpeg提取jpeg质量因子
http://blog.csdn.net/lzhq28/article/details/7775222 版权声明:本文为博主原创文章,未经博主允许不得转载. data = new BYTE [cinf ...
- 微信小程序 drawImage 问题
好久没写了,其实可写的还是挺多,主要还是懒吧... 最近公司项目使用小程序做序列帧动画,大概有 116 张图,共9.6M. 比较闲的日子里实验了一番,主要有以下几种方法, 1. css backgro ...
- RocEDU.阅读.写作《霍乱时期的爱情》书摘(一)
不可避免,苦杏仁的香味总是让他想起爱情受阻后的命运. 一切都显得凄凉无助,可那一间间肮脏的小酒馆里却传来震耳欲聋的鼓乐声,那是穷人的狂欢,既无涉上帝,也无涉圣神降临节的诫命. 他们经常谈起它,一同承受 ...
- Hive查询Join
Select a.val,b.val From a [Left|Right|Full Outer] Join b On (a.key==b.key); 现有两张表:sales 列出了人名及其所购商品的 ...
- Dijkstra+优先队列
/* Dijkstra的算法思想: 在所有没有访问过的结点中选出dis(s,x)值最小的x 对从x出发的所有边(x,y),更新 dis(s,y)=min(dis(s,y),dis(s,x)+dis(x ...
- springMvc REST 请求和响应
前言: 突然怎么也想不起来 springMvc REST 请求的返回 类型了! (尴尬+究竟) 然后本着 方便的想法 百度了一下 发现了个问题,大家在写 springMvc RES ...
- POJ 1236 Network of School
http://poj.org/problem?id=1236 题意: 给出一个图,至少要选多少个点才能遍历全图和至少需要添加多少边使得整个图是强连通. 思路: 强连通计算连通分量后缩点,计算入度为0的 ...
- python 编程测试练习2
1.将A.txt(多行)文件的内容读取出来写入到B.txt中 2.总结 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Python脚 ...
- AJAX的例子
var XMLHttpReq; //根据不同的浏览器创建不同的XMLHttpRequest对象function createXMLHttpRequest() { if (window.XMLHttp ...