标题:64位WIN7中调用音频播放时无声音啦!求帮忙!
只看楼主
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
结帖率:60%
已结贴  问题点数:20 回复次数:17 
64位WIN7中调用音频播放时无声音啦!求帮忙!
我有个程序在100多个客户使用过程中一切都是正常的,包括一些WINXP、WIN7、WIN8、WIN10的客户,
现在忽然有一个新客户,他的操作系统是64位的WIN7,不能正常地发出声音,原来使用的是这种方法:
   Declare Integer sndPlaySound In winmm ;
   STRING lpszSound, Integer fuSound
   #Define SND_SYNC       0
   #Define SND_ASYNC      1
   #Define SND_NODEFAULT  2
   =sndPlaySound('5秒倒计时.wav', SND_ASYNC + SND_NODEFAULT)

我又改成了:
SET BELL ON
SET BELL TO '5秒倒计时.wav'
?? chr(7)

还是没有声音,这是怎么回事呢,问题出在哪里,该怎么解决呢?希望各位给予指点,非常感谢!!!
搜索更多相关主题的帖子: 操作系统 
2016-12-28 14:03
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:7 
用sndPlaySound的代码没问题。
检查系统音频设备或播放的文件(或路径)
2016-12-28 15:10
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
得分:0 
电脑音频设备可以使用播放器正常播放音乐,但就是使用上述命令来播放时播放不出声音。按理说sndPlaySound调用的WINMM.LL动态库的功能,即便WINMM有问题,但SET BELL这个也应该能播放出声音来呀?
2016-12-28 16:32
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
得分:0 
补充一下:而且我在执行播放命令之前已经检查文件是否存在了,不是路径不对找不到文件的问题。
2016-12-28 16:34
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
得分:7 
程序代码:
      IF FILE("WAV\RINGIN.WAV")
         SET BELL TO "WAV\RINGIN.WAV"
         ACTIVATE SCREEN
         ? CHR(7)
      ENDIF

我的可以播放呀。
2016-12-29 08:22
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
得分:0 
回复 5楼 hyswcyh
不是不能播放,是在某台电脑上播放不出来,不知道是什么原因造成的。
2016-12-29 15:54
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:7 
以下是引用w7802672在2016-12-29 15:54:55的发言:

不是不能播放,是在某台电脑上播放不出来,不知道是什么原因造成的。

重装系统看看,或者换32位的。先把以前的系统 GHOST先。。
2016-12-29 16:43
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
得分:0 
这个没关系,我的系统也是ghost的,32位和64位也没有关系。
没声音就检查一下:
先看看其他播放正常吗?
1、如果正常,就是程序的问题,如你的这个wav文件能不能在其他电脑上播放,或能不能在本地用其他软件播放。
2、如果不正常,就是操作系统的问题,如驱动、硬件什么的

一般用排除法,可以找到问题所在。
2016-12-30 08:33
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
得分:0 
楼主闭关了!
2017-01-02 13:14
w7802672
Rank: 1
等 级:新手上路
帖 子:231
专家分:0
注 册:2015-5-20
得分:0 
第一,程序没问题,至少在150台以上的电脑上运行过,都没有问题。
第二,不能在我的程序中播放声音的电脑可以使用播放器正常播放,也能正常播放我程序里的音频文件。
唯一的问题是他的电脑在我的程序里不能播放出声音。或许是他的电脑缺少我程序里调用音频时需要的东西,查了一下,
   Declare Integer sndPlaySound In winmm ;
   STRING lpszSound, Integer fuSound
   #Define SND_SYNC       0
   #Define SND_ASYNC      1
   #Define SND_NODEFAULT  2
   =sndPlaySound('5秒倒计时.wav', SND_ASYNC + SND_NODEFAULT)
上面这段程序应该调用的是WINMM.DLL,但是我改成:
SET BELL ON
SET BELL TO '5秒倒计时.wav'
?? chr(7)
也不能播放,不知道这个调用的又是什么呢?
查过他的电脑也有WINMM.DLL,真搞不清问题出在哪儿了。这个WINMM.DLL有设置的选项吗?难道是关闭了播放音频的功能?
2017-01-03 12:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-473035-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.150531 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved