作者teamspike (市政府7F)
看板C_Sharp
标题[问题] 请问如何达到SoundPlayer与程式内容的同步?
时间Fri Sep 5 15:30:51 2008
大家好
小弟正在做一个程式
可以把演讲的.wav档和文字稿同步
文字稿常常有好几十页,边听音档还要边自己卷动文字档视窗
蛮麻烦的,所以才想实作这个功能
我的作法是先把文字稿以每分钟为单位切割
放入字串阵列
播放音档
使用timer计时,每一分钟show一个字串
问题来了,SoundPlayer的作法是产生额外的执行绪播放音档
而soundplayer.Play()以後要一段时间以後声音才会出来
因此timer无法精确的计时
试过的错误方式如下:
=====================================================
soundplayer.Play();
timer.Start();
声音还没有出来的时候,timer就已经跑了
=====================================================
soundplayer.PlaySync();
timer.Start();
使用目前的执行绪播放音档,播放完前timer不会计时
=====================================================
soundplayer.Load(); 也有试过LoadAsync()
soundplayer.Play();
timer.Start();
声音还没出来,timer就开始跑了
原本以为是load的时间,原来不是
这表示在load完成到播放出声音之间有一段空白时间吗?
======================================================
soundplayer.Play();
Thread.Sleep(soundplayer.LoadTimeout);
timer.Start();
以为LoadTimeout是load的时间,於是先等待这段时间
可是这样timer会在声音出来以後几秒才开始计时
总而言之,没有办法在声音播放出来的同时显示第一个字串
而且soundplayer好像也没有判断是否播放中的属性
实在找不到方式,请各位大大不吝指教
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.216.193