社区
WPF/Silverlight
帖子详情
wpf怎么实现卡拉OK效果?
hasagiiiii
2011-07-07 08:21:17
又没有人用wpf做过音乐播放器,要实现像酷狗,QQ音乐那样的歌词效果要怎么做呢?
是不是要新开一个窗口,里面放歌词呢?
如果用其他控件都无法单独显示在窗口外面。
另外要怎么实现音乐播放到那,歌词就同步到哪里,就是颜色不一样的那种效果。
有没有高手能指点一下?
...全文
281
6
打赏
收藏
wpf怎么实现卡拉OK效果?
又没有人用wpf做过音乐播放器,要实现像酷狗,QQ音乐那样的歌词效果要怎么做呢? 是不是要新开一个窗口,里面放歌词呢? 如果用其他控件都无法单独显示在窗口外面。 另外要怎么实现音乐播放到那,歌词就同步到哪里,就是颜色不一样的那种效果。 有没有高手能指点一下?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hasagiiiii
2011-07-08
打赏
举报
回复
先不结贴,看看有没有大虾有更好的办法
hasagiiiii
2011-07-08
打赏
举报
回复
[Quote=引用 3 楼 duanzilin 的回复:]
试试ActualWidth有没有值
好像Lable无法显示在所有windows窗体最上层的
[/Quote]
我知道错在哪了~
desiredSize的结果是正确的~谢谢你的耐心回答~
hasagiiiii
2011-07-08
打赏
举报
回复
[Quote=引用 3 楼 duanzilin 的回复:]
试试ActualWidth有没有值
好像Lable无法显示在所有windows窗体最上层的
[/Quote]
可以获取,但是全部是一样的~无论label里的字符是多少个。。。
而label.width获取的全是NaN,
label.desiredSize得到的结果更加不考谱,label为6个字符的时候获取的结果为10,8个的时候为360.
三个都不能用,看来还是得手动算,有没有方法直接通过字符的fontsize和字符数获取实际长度呢?
沝林
2011-07-08
打赏
举报
回复
试试ActualWidth有没有值
好像Lable无法显示在所有windows窗体最上层的
hasagiiiii
2011-07-08
打赏
举报
回复
[Quote=引用 1 楼 duanzilin 的回复:]
Popup应该可以显示在最外面的,不要让它自动关闭,编程控制它的显示和隐藏就可以了,而且它会一直在最上面,其他窗体也挡不住的
字的颜色与歌词的同步,我之前做了个类似的,我是用一段文字,用文字的颜色变化表示进度,歌词颜色变化也可以用这种方法,比如:一句歌词要唱5秒钟,用一个timer监视进度,同时要让字的颜色随进度改变,你需要2个显示层,其中上面一层是正常的字,下层一层是红色的字,2层字体可……
[/Quote]
我的想法也是这样,不过我用的是新窗口,然后用两个不同颜色的label,一个label的width随音乐的播放而增加,这样大概可以实现了这个功能,但是细节部分却有很多问题,比如timer,我把timer的间隔Interval设置为0.05,然后在tick事件里把一个代表时间currTime的变量+=0.05;这样currTime就可以代表已经播放了多长时间,但是实际上发现这个时间并不准确,我打开了一个计时器和程序里的currTime比较,发现过了1分钟后,程序里的currTime会比实际的计时器慢上1到2秒,我猜测timer在调用tick事件的时候会暂停计时,所以导致最终时间慢了一点,结果歌词的播放跟音乐的播放并不同步,后来用DateTime.Now - 开始播放的时间来获取音乐播放的时间,这样就比较准确。
还有一个问题就是,应该怎么获取Label的长度呢?我的想法是label的长度(就是当前句歌词的长度)/两句歌词间的时间间隔,获取label的width的增加速度,但是实际上发现获取不了label的width,不是NaN就是0,所以最终我用歌词长度 * fontsize来获取长度,结果还是导致音乐和歌词播放的速度不一致。
有没有大虾能指点一下~有没有比较好的解决办法
沝林
2011-07-07
打赏
举报
回复
Popup应该可以显示在最外面的,不要让它自动关闭,编程控制它的显示和隐藏就可以了,而且它会一直在最上面,其他窗体也挡不住的
字的颜色与歌词的同步,我之前做了个类似的,我是用一段文字,用文字的颜色变化表示进度,歌词颜色变化也可以用这种方法,比如:一句歌词要唱5秒钟,用一个timer监视进度,同时要让字的颜色随进度改变,你需要2个显示层,其中上面一层是正常的字,下层一层是红色的字,2层字体可以完全重合,开始是正常字体层覆盖红色字体层,随着播放开始,正常字体层的宽度随进度不断收缩,红色字体层不断显露出来,看起来就像字体在变一样
关于正常字体层的宽度收缩,可能需要用到旋转和平移等转换操作,因为控件的宽度默认是从右开始收缩的
wpf
仿QQ音乐歌词
卡拉
OK
最近用
WPF
做了个音乐播放器,读取歌词、歌词同步都已经
实现
了。
卡拉
OK
逐字变色也
实现
了,但是逐字变色时不能根据歌手唱的快慢来逐字显示。请问各位大神,这个如何解决,有何思路?(附上我做的界面) 感谢各位大神光顾和赐教!!!抱拳........ 转载于:https://www.cnblogs.com/leeice/p/4108844.html...
VC
卡拉
OK
系统MFC实践教程:多媒体应用开发详解
MFC(Microsoft Foundation Classes)是微软提供的一套类库,它封装了大部分Windows API,简化了Windows应用程序的开发。通过MFC,开发者可以更加专注于应用程序逻辑的
实现
,而非繁琐的API调用。
卡拉
OK
系统需要提供音乐播放、歌词显示、用户点歌等基本功能。此外,考虑到用户体验,系统还应具备音量控制、音调调节、画面美化等高级功能。音视频同步机制通常通过时间戳来
实现
。系统记录下音频和视频帧的时间戳,播放时根据时钟同步调整播放速度和缓冲。
WPF
中HLSL着色器与Clip
实现
歌词高亮
效果
HLSL(高级着色器语言)是GPU编程的核心技术,通过像素级计算
实现
复杂光影
效果
。在
WPF
框架中,结合Clip区域裁剪技术,可以突破原生UI渲染限制,打造专业级视觉体验。这种GPU加速方案特别适合需要实时交互的多媒体应用,如歌词高亮、游戏UI等场景。通过着色器编程控制光照衰减和颜色混合,配合
WPF
的几何裁剪
实现
精确区域控制,既能保证60fps的流畅性能,又能避免引入第三方引擎的复杂度。该技术在
卡拉
OK
系统、音乐播放器等场景具有广泛应用价值,其中HLSL的纹理采样和坐标变换是关键
实现
环节。
字幕
效果
字幕基础特效 1.基本特效 1.1颜色设置 1.2颜色渐变 1.3大小设置 1.4大小渐变 1.5位置设置 1.6移动特效 1.7高亮特效 1.8旋转特效 1.9抖动特效 1.9.2抖动特效2 1.10闪烁特效 1.11
卡拉
OK
特效 1.12透明特效 1.13打字机特效 点播复杂特效 1樱花雨特效 1.1樱花雨左飘特效 1.2樱花雨下落 ...
现实世界的Windows Azure:采访Designercity的解决方案技术总监Ernest Kwong
作为现实世界Windows Azure访问系列的一部分,我们对Designercity的解决方案技术总监ErnestKwong就他们为其交互式的
卡拉
OK
应用程序使用WindowsAzure的问题进行了采访。以下是采访内容: Himanshu KumarSingh: 请为我们简单介绍一下Des...
WPF/Silverlight
8,757
社区成员
12,031
社区内容
发帖
与我相关
我的任务
WPF/Silverlight
WPF/Silverlight相关讨论
复制链接
扫一扫
分享
社区描述
WPF/Silverlight相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章