制作运动的时间轴有什么好方法
vb吧
全部回复
仅看楼主
level 6
FLSans😜 楼主
就是类似于pr、ae那样的媒体时间轴,据我所知以timer的精度会很容易出现时间流速和媒体播放不统一的情况,我也试了用sleep循环模拟timer,但是那样程序在循环中就会死掉无法操作
2023年12月24日 15点12分 1
level 13
sleep设置太大程序会挂起,一般也就sleep(1),这样在Do循环可以降低CPU占用率。
1.可以在Do循环中,调用timeGetTime多次得到时间差来决定执行什么动作(timeGetTime精度1ms的样子,比VB的Timer控件精度高),或者用GetTickCount也可以(但是精度和VB的Timer控件差不多,15ms左右)
2.timeGetTime一般用作多媒体控制,如果还要高精度可以调用QueryPerformanceFrequency,这个优点是精度是ns(纳秒)级的,timeGetTime时ms(毫秒)级,缺点是反复调用时开销很大,精度越高函数调用的时间花费越大
2023年12月26日 03点12分 5
选择了tGT
2023年12月27日 04点12分
@FLSans😜 [呵呵]一般都用tGT,我游戏里也用这个,毫秒级够用了
2023年12月27日 06点12分
level 13
@FLSans😜 timeGetTime 之前加 timeBeginPeriod(1),精度设置为1毫秒,timeGetTime之后加timeEndPeriod,据微软说 Windows NT/2000:timeGetTime函数的默认精度可以是5毫秒或更长,具体取决于机器。 所以这个要加上,反正我没有测试出来。现在的机器好像不加timeBeginPeriod(1)都是1毫秒精度
2023年12月27日 06点12分 6
有没有比较精确的控制音乐播放进度位置的方法,wmp好像只能精确到秒
2024年01月15日 13点01分
@FLSans😜 没有,WMP我从来不用,DirectShow好像也是秒,音乐方面我就用过DirectShow和Bass,Bass延迟低我游戏用它来播放怪物叫声和特效的声音,DirectShow无法达到,你可以看看Bass的参考资料,具体有没有毫秒级定位我不清楚
2024年01月16日 10点01分
@FLSans😜 我查了下BASS_ChannelSetPosition可以设置当前播放字节,理论上通过一些计算可以精确到毫秒,音乐本就是字节组成,精确到字节,想得到毫秒不难吧
2024年01月16日 10点01分
@隨風🍁缒夢 感谢,不过我不知道你说的这个bass是什么以及怎么用[喝酒]
2024年01月16日 16点01分
1