首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

关于wince6.0 怎么延时声音输出(有点难度!)

2012-09-22 
关于wince6.0 如何延时声音输出(有点难度!)各位好!最近做一个项目,有一个问题:在ARM有声音输出时,会打开混

关于wince6.0 如何延时声音输出(有点难度!)
各位好!最近做一个项目,有一个问题:在ARM有声音输出时,会打开混音开关(物理设备)而导致POP声。于是设计一个思路在ARM输出声音时主控MCU去MUTE音频IC,这样产生了一个问题,就是ARM输出的声音被MUTE掉前面的一部分

现在希望ARM有输出时,先发Message出去,再延时400ms再播放声音,这样就不会MUTE到希望播出的声音了。

请问:这个延时如何从驱动来实现,因为应用层不能改动,只能从系统层去改

=================================================================================================
急求解决办法啊,wince audio驱动看了好几次,依然没有思路,延时?应用层输出的数据如何保存来延时播放?亦或是驱动再处理数据时能否延时,暂时毫无头绪啊。

[解决办法]
从应用改,很简单。

但从驱动改,不确定,要看具体的东东。
[解决办法]
在ARM有声音输出时,会打开混音开关(物理设备),在真正写audio pcm数据下去之前,可以把speaker的PA关闭掉就没有pop音了,真正有数据的时候再把PA拉上来,写入的audio pcm数据也可以做渐进放大,从很小慢慢变大,移位pcm数据就可以控制住。
[解决办法]
毛研究过,或许可以把播放的数据流先缓起来,等时间够了之后,再拿出来放
[解决办法]
看一下你的音频驱动,打开输出流的地方,一般是开启内存到MCU音频控制器的DMA传输的时候,在这里把外部的CODEC开关关闭,然后输出一些正常的音频数据,再打开,这个过程的延时要控制好 要不然,就会出现你说的mute掉一些正常的声音
[解决办法]
你是否找到在哪发Message出去?如果找到了,就可以在那sleep.
[解决办法]
从驱动层解决问题才是根源,某些寄存器的顺序调整应该是可以解决的。比如说codec开的时候有啪声,是否尝试一下音量调到最小再开codec,再恢复音量

热点排行