关于播放背景音乐帖实际操作中的发现。
pascal吧
全部回复
仅看楼主
level 4
笠2013
楼主
首先感谢吧友
@风x千叶翔龙V
的辛勤付出以及其他吧友的积极讨论,让我掌握了有关的编程技术。在此把研究过程中的一些发现进行讨论。
2015年02月07日 07点02分
1
level 4
笠2013
楼主
首先这个程序似乎可以不受制于windows单元库的使用,经过简化后的源代码如下,经测试可行,我用的是Free Pascal2.0.4,不知道其他版本是否也是这样。那么mciExecute到底应归类于哪种函数呢?而且很少有子程序是这种写法的,实在受益匪浅,再次谢谢吧友的辛勤劳动!
2015年02月07日 07点02分
2
笠2013
背景音乐播放的教程:
https://tieba.baidu.com/p/3260778672
2015年02月07日 07点02分
赛尔号玩家①
mciExecute调用了winmm.dll,所以name后面的名字不能改,但procedure后的名字可以自定义。external是外部关键字。
2015年02月07日 10点02分
风x千叶翔龙V
回复
���������Ң�
:orz单身在说什么完全听不懂
2015年02月07日 11点02分
风x千叶翔龙V
回复
���������Ң�
:大神
2015年02月07日 11点02分
level 4
笠2013
楼主
mciExecute(变量)这里的E必须大写,否则程序无法正常运行。变量其实不仅仅可以用pchar,还能用ansistring,这样就省掉了p:=pchar(某变量:ansistring)这样一个步骤了。
最后最重要的是,我发现这里其实根本不需要多线程,在music(p)后直接写a+b problem,完全没问题,这是得music一步似乎不是和后边程序呈线性排列的,而是作为背景音乐哦!不错吧?这么说来,不需要用到createthread过程的话,windows的调用也就真的不需要了。
2015年02月07日 07点02分
3
DWVoid😄
把stdcall去掉有时调用速度回快很多(前提是你的dll允许你这样做)
2015年02月08日 13点02分
level 4
笠2013
楼主
音乐格式若是wma,则会弹出一个有歌手头像的方框(无法正常截图);若是mp3,则没有方框,音乐正常播放。
2015年02月07日 07点02分
4
level 13
Fallen_Breath
能同时播放多个音乐吗,播放延时多少
2015年02月07日 10点02分
5
风x千叶翔龙V
这玩意就是我们上次测过的
2015年02月07日 11点02分
风x千叶翔龙V
调用dll延时62ms
2015年02月07日 11点02分
风x千叶翔龙V
继续玩snd就好了,爆栈和线程上限的原因都有了猜测,一直没做测试【此人懒癌晚期
2015年02月07日 11点02分
笠2013
当然可以,多线程的优点就是这个。不过一般没人想到同时放多首歌曲听吧,呵呵。
2015年02月07日 14点02分
1