请问在Javascript中如何使PC喇叭发声?

canghaiyishenglengxi 2008-05-19 01:34:38
在页面上需要让PC的喇叭发个提示音。

找了很多帖子,都说用beap,
查了一下,这个方法是windows系统的kernel32.dll里的。
但是在javascript下怎么调用windows下的dll库啊?
我写成var comtest = new ActiveXObject("C:\WINDOWS\system32\kernel32.dll")
报错说服务器不能创建对象:(

除了windows的beap,还有其他的方法让喇叭发声么?

各位帮帮忙啊~~~~~~

...全文
815 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
tantaiyizu 2008-05-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 canghaiyishenglengxi 的回复:]
引用 14 楼 tantaiyizu 的回复:
很明显,楼主在努力的去尝试,可为什么不参照 12 楼那位同学的去做呢?

12楼不就是你么:)。
用网上的连接,如果那个连接失效了怎么办?安全性上也会有问题吧。
[/Quote]

呵呵 ,失效? 如果怕失效 ,你怎么不怕浏览器突然就不能工作了呢?


安全性? 播放一个音频文件 ,你可以举例说明有什么安全问题?
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 tantaiyizu 的回复:]
很明显,楼主在努力的去尝试,可为什么不参照 12 楼那位同学的去做呢?
[/Quote]
12楼不就是你么:)。
用网上的连接,如果那个连接失效了怎么办?安全性上也会有问题吧。
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 tantaiyizu 的回复:]
很明显,楼主在努力的去尝试,可为什么不参照 12 楼那位同学的去做呢?
[/Quote]
12楼不就是你么:)。
用网上的连接,如果那个连接失效了怎么办?安全性上也会有问题吧。
tantaiyizu 2008-05-20
  • 打赏
  • 举报
回复
很明显,楼主在努力的去尝试,可为什么不参照 12 楼那位同学的去做呢?
  • 打赏
  • 举报
回复
到目前实验过的发声方法:

1.是用java.awt.Toolkit中的beep,但是这需要JVM,web程序不能要求没个用户都有JVM,不合适。
2.想调用kernel32.dll中的beep,但是对象创建失败,发现这个dll在注册表里没有clsid,失败。
3.昨晚终于找到个现实一些的方法:
用Vbscript或JavaScript,调用Wscript.Shell,运行命令行

Set oShell = CreateObject("Wscript.Shell")
oShell.Run "%comspec% /c echo " & Chr(7), 0, False

或用Wscript.Shell运行windows本身的系统声音文件
sWaveFile = "%windir%\media\ding.wav"
oShell.Run "sndrec32.exe /embedding /play /close """ _
& sWaveFile & """", 0, True

调用Wscript.Shell的后果是IE会有安全警告,需要允许一下,为了这把安全级别调低感觉不是很适合,让人不爽,非必要还是不要用的好

诸位还有其他的方法么?欢迎讨论
webphoenix 2008-05-20
  • 打赏
  • 举报
回复
偶就搞不懂了,明摆着简单的不做,非搞什么java、WScript,我晕
你的客户不是不需要你引入外部文件么,你按照一楼二楼的方法做,至于这个音频文件或者flash,
你可以把它的后缀改成 jpg、gif、png、html、js、css等等你客户认可的格式就是了,就算你客户看到这个“图片”文件又有什么异议呢?他只能认为这是个jpg...
bgsound="XX.html|xx.jpg" ...........
tantaiyizu 2008-05-19
  • 打赏
  • 举报
回复
是人家服务器上的文件 ,客户总管不着吧
tantaiyizu 2008-05-19
  • 打赏
  • 举报
回复
不用外部文件没关系 ,你在网上找个那个声音的 网址 ,放到body的bgsound里面不也可以吗?


这就应了客户的需求,不给它加外部文件
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tantaiyizu 的回复:]
呵呵 ,我想追求系统干净 ,那好 可以给客户去说明啊 ,举例子等等


总之得去交流啊 ,你想想吧 ,你这样别说在现有浏览器环境下根本没有可能 ,就是有

也要花费很多的时间和精力 ,这和去客户协商比起来 ,孰轻孰重?

你们就那么没有自信? 不敢去和客户去交流?
[/Quote]

呵呵,打住,跑题了,不论客户和交流的问题,
我自己也很想知道javascript能不能调用COM,以及能不能不用外部文件让喇叭发声。


刚才鼓捣了一个方法,借用java.awt.Toolkit.getDefaultToolkit().beep(),倒是可以响一下,
但是这似乎需要客户端有jdk的样子,各位还有什么好办法么?
yinchuanshuxiu 2008-05-19
  • 打赏
  • 举报
回复
你把显卡拔掉,或者拔内存条。在2点27就拔了。OK?
tantaiyizu 2008-05-19
  • 打赏
  • 举报
回复
呵呵 ,我想追求系统干净 ,那好 可以给客户去说明啊 ,举例子等等


总之得去交流啊 ,你想想吧 ,你这样别说在现有浏览器环境下根本没有可能 ,就是有

也要花费很多的时间和精力 ,这和去客户协商比起来 ,孰轻孰重?

你们就那么没有自信? 不敢去和客户去交流?
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 tantaiyizu 的回复:]
很好奇 ,为什么不能用外部的音频文件 ,你就加个文件, 他有什么不愿意的 ?

我想是你是你们与人家之间的苟同失败才会产生这样的需求呢?

楼主你认为呢?
[/Quote]

没办法,客户有客户的想法,一开始就明说不要外部文件了,可能是他喜欢自己的系统干净一些吧。
我们只能给建议,而不能对客户进行强制要求:)
tantaiyizu 2008-05-19
  • 打赏
  • 举报
回复
很好奇 ,为什么不能用外部的音频文件 ,你就加个文件, 他有什么不愿意的 ?

我想是你是你们与人家之间的苟同失败才会产生这样的需求呢?

楼主你认为呢?
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 icake 的回复:]
你要改他机器上的一个注册表项,其实是对方机器的一个设备pc speaker,把它启用就可以了。很难
不过建议你用楼上的方法,更好
[/Quote]

能详细说明一下么?改哪个注册表项目?学习下先:)

要是改注册表的话确实是不现实的,
简单的说,这是个WEB项目,用户点击一下页面button,在某个条件时,比如页面输入不合法时,让PC响个提示音。
不可能让最终用户改注册表,如你所说,很难
icake 2008-05-19
  • 打赏
  • 举报
回复
你要改他机器上的一个注册表项,其实是对方机器的一个设备pc speaker,把它启用就可以了。很难
不过建议你用楼上的方法,更好
  • 打赏
  • 举报
回复
先谢谢你了,:)
但是客户要求不能用外部的音频文件,就是直接让喇叭发个提示音,难听不要紧

tantaiyizu 2008-05-19
  • 打赏
  • 举报
回复
当然你还可以用 embed 标记 ,以及 flash来解决 ,会更好
tantaiyizu 2008-05-19
  • 打赏
  • 举报
回复
<body bgsound="你的音频路径">

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧