向网站添加滑动声音

Posted

技术标签:

【中文标题】向网站添加滑动声音【英文标题】:Adding a sliding sound to a website 【发布时间】:2009-11-19 17:34:29 【问题描述】:

我想向网站添加一个不寻常的功能,允许用户播放声音......单个采样音符。当用户移动滑块控件时,声音会在音调上上升或下降(无缝)。因此,当用户将按钮向右滑动时,声音的音调会升高,当向左移动时,声音的音调会降低(从女高音到低音)。 有谁知道如何做到这一点?你会使用什么样的声音文件,如何让它连续播放(当按下按钮时)和改变音高(当滑块移动时)? 这不是真正特定于语言的 - 它可能是 php 或 flex。 提前致谢。 西蒙...

================================================ 更多信息

似乎最好的解决方案可能涉及 C、C# 或 C++ 之类的东西。不幸的是,我对这些语言的经验很少。谁能告诉我是否有可能在 C 中实现这一点? 谢谢。

【问题讨论】:

【参考方案1】:

这些“Sonoflash”家伙正在用纯 ActionScript3 生成的音频做非常有趣的事情 - 换句话说,不需要外部声音文件。

这是 Adob​​e 平台传播者 Ryan Stewart 对他们进行的采访的链接。我怀疑您将能够使用此 AS3 库获得所需的内容。

http://blog.digitalbackcountry.com/2009/09/sonoflash-easily-add-sound-to-your-flash-apps/

【讨论】:

+1 这与我认为您可以使用本机应用程序执行的操作非常接近,但我没有意识到现在使用 Flash10 可以实现。【参考方案2】:

您需要一个客户端插件才能在浏览器中完成这项工作,Silverlight、Flex 或 Flash 很可能是您的最佳/唯一选择。

在硬件访问受限的网站上,您想做的事情即使不是不可能也很难。最好的办法是拥有多个音频文件(针对您想要的每个音符/音高)并让滑动控件播放不同的文件。

您可能想要使用一个队列和一组不同的音频文件。

如果队列中的下一个项目与第一个不同,则播放它,如果队列为空,则继续播放最后一个文件。然后在“滑块”事件中,您将排队下一个文件。

如果您运行的是本机应用程序,您将对声音硬件有更多的控制权,并且可能无需为您想要播放的每个音符/音高配备一个 mp3 就可以创建这种效果。

【讨论】:

感谢您的想法...我并不完全赞同任何特定技术解决方案的想法。你能告诉我你所说的“本机应用程序”是什么意思吗?我不认为为每个音符设置单独的声音的想法会起作用(因为声音需要在音高中滑行),因此如果有不同语言的解决方案,那就太好了。再次感谢西蒙... 当我说本地应用程序时,我的意思是用户将在本地运行的 exe 文件。 C++、C#、Java 等,可以直接访问 Windows API 和硬件。【参考方案3】:

要实现您想要的,您需要特定的音频处理工具,而大多数网络应用程序都无法使用这些工具。 我建议你看看 Flex 和 Alchemy。 Alchemy 允许您调用 c 或 c++,这可以让您使用不同的 c 过滤器来转换声音。

我知道这不是不可能的......只是不容易做到:)祝你好运。


阿德里安

【讨论】:

【参考方案4】:

肯定没有 PHP 解决方案,除了回显 html 来调用客户端例程。

您当然可以使用 Flash 或 Flex.. 但是您尝试过 javascript 鼠标事件吗?

例如:

<img src="buttonImageFilename"
onMouseDown="handlePress();return true;" 
onMouseUp="handleRelease();return true;" 
onMouseOut="handleRelease();return true;" 
onClick="return false;"
>

老实说,每当 Flash 作为第一个解决方案被扔掉时,我都会感到烦恼,因为通常需要环境对象包装器来渲染它。 (你见过 Flash10 和 CPU 占用的问题吗??)

很多时候,对于简单的事情,JavaScript 工作得很好。

【讨论】:

关于 C#/C++ 要求 - 这与在网页上工作到底有什么关系?您是在尝试在网页或独立应用程序上构建小部件吗?许多语言都模仿 C 的语法,但特别是 C 通常用于应用程序,而不是网页。

以上是关于向网站添加滑动声音的主要内容,如果未能解决你的问题,请参考以下文章

洛谷 P1886 滑动窗口 (数据与其他网站不同。。)

向网站添加服务引用

如何使用 Ngrok 向网站添加密码

我想在我的PHP网站里加一个验证码,滑动那种

如何向网站添加推送通知?

如何在 Swift 中向响应式网站添加后退按钮