问题标签 [audioclip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3018 浏览

c# - AudioClip 的频率和音高关系 - Unity3D

我正在尝试仅使用 6 个音频剪辑来重新创建吉他的全部范围。

我在想有一种方法可以设置音频剪辑的频率,但 audio.frequency 只返回基于压缩格式的音频频率,而不是实际音调。

我知道我可以阅读 GetSpectrumData,但该解决方案相当复杂,需要一些傅里叶变换分析或类似的东西。

影响音高,很容易改变音调,所以我可以上下,但有没有办法弄清楚要使用的步骤。

我能听到它听起来不正确。

知道音高为 1 的初始音调 E4 329.63Hz 是否有任何影响音高的方程式,我会得到下一个键 F4 349.23Hz(或足够接近)?

还必须考虑 Unity AudioSource 将音高限制在 -3/3 范围内(我认为这超出了需要)。

编辑:添加一些个人研究。似乎音高 1 是初始音符,设置为 2 会使相同的键高一个八度。

由于半音阶(钢琴上的所有黑色和白色音符)是 12 个键,我假设每个步骤使用 1/12 应该可以做到这一点。

听起来很接近,但我认为它不太正确。这是新代码:

0 投票
1 回答
1684 浏览

unity5 - 在运行时将外部 OGG 文件加载到 Unity WebGL 构建中

我正在尝试在运行时在 WebGL 构建中将一些 OGG 格式的声音加载到我的游戏中。我使用 WWW 类来获取扩展名为“.ogg”的文件,然后调用www.audioClip以获取下载的文件。这适用于其他平台,但在 WebGL 中失败。

Unity 抛出此错误消息:“不支持此平台上的 'ogg' 流式传输”。奇怪,因为我没有尝试流式传输它,并且我尝试显式调用GetAudioClip(false, false, AudioType.OGGVORBIS)并得到相同的结果。

我尝试将我的 OGG 文件转换为 AAC(带有 M4A 和 MP4 扩展名)并加载它www.audioClip(错误,它无法从 URL 确定文件类型)和www.GetAudioClip(false, false, AudioType.MPEG)(没有错误但也没有声音)。我在网上看到的最接近解决方案的方法是改用 MP3,但出于许可原因,我不想这样做。

Unity 中的 WebGL 是否仅限于应用程序中构建的音频资产?

0 投票
2 回答
418 浏览

c# - 如何在 C# 中使用类预定义的委托

我对编程相当陌生,目前正在尝试学习如何在 C# 中使用委托。我已经阅读了 MSDN 上的 C# delegates 编程指南,并查看了 Stack Overflow 上的一些其他示例。我想我得到了整体概念,但对如何使用已经在类中定义的委托感到困惑。例如,在 UnityAudioClip类中,PCMReaderCallback每次音频剪辑读取信息时都会调用一个委托。它采用的参数只是一个float值数组。

我猜这意味着我可以使用这个委托来包装任何使用浮点数组作为参数的方法。在我经历过的教程中,他们解释了如何创建一个委托来包装您在定义委托时选择的方法,这对我没有帮助,因为PCMReaderCalledback 已经在AudioClip类中定义了。

我的问题是如何使用已经定义的委托来调用我选择的方法?

也许这是不可能的,或者我首先对代表的目的感到困惑。

0 投票
1 回答
309 浏览

eclipse - 可执行 jar + 音频剪辑

从可执行 jar 运行应用程序时,我遇到了这个异常:

这是 Token.java:70,这是造成这种情况的原因:

“bounce.wav”位于“resources”源文件夹@“sounds”子文件夹中。

在 Eclipse 中运行应用程序不会抛出异常@这一点+在需要时播放 AudioClip。

帮助!:(

0 投票
1 回答
1319 浏览

java - 如何更改音量/更改 AudioClip

我见过改变剪辑音量的方法,但是,我使用的是 AudioClip(下面的代码)。有没有改变剪辑音量的好方法?还是我必须改用剪辑?

0 投票
2 回答
1773 浏览

c# - 在 Unity 中序列化游戏对象

我有这样的课 -

我想使用可序列化存储数据。Unity 文档说 GameObject 是 serializeField。但它给出了例外 -

有人知道吗?

0 投票
1 回答
914 浏览

c# - 如何在本地文件中连接 AudioClip

我从服务器下载了 .mp3 文件并将其存储在我的 android persistentDataPath 中。但我不知道如何将 .mp3 文件连接到 AudioClip。请让我知道是否有解决方法。

0 投票
0 回答
359 浏览

c# - 用NAudio外接MP3转Unity AudioClip后,内存无法释放

前几天想用NAudio把外接的MP3转成Unity AudioClip,但是之后内存就无法释放了!看到这个帖子。

我发现了几个可能导致内存无法释放的地方,尤其是在“WAV wav = new WAV(data)”中。真遗憾。所以,现在我用 NAudio 重写了 Unity 的 AudioClip。有什么好主意吗?

0 投票
1 回答
4599 浏览

java - JavaFX AudioClip.play()

我正在创建一个使用声音的 JavaFX 应用程序,例如按钮悬停。我创建了一个 JavaFX AudioClip 来创建和播放声音。到目前为止一切正常(意思是:我听到了声音)。

当play(); 方法被调用,声音立即播放。如果我将按钮悬停 10 次,我会听到 10 次声音。但是:当 play() 方法返回时,JavaFX 在后台创建数百个线程(每次调用数百个)。我什至看不到它实际上是什么,因为有这么多,Eclipse 甚至没有正确显示它们(只有一个白色区域和一个疯狂的上下滚动滚动条)。

这会导致巨大的滞后,我不明白 JavaFX 在这里做什么!它总是相同的声音,所以我已经将它缓存到一个哈希图中,但问题不在于实例化 AudioClip,当 play() 方法返回时,它显然在堆积。

我已经研究了几个小时,但我无法找到减少延迟的解决方法(除了可能减少声音文件的大小,我这样做了)。

暂时忘记哈希图来缓存 AudioClips,这没有任何区别。所谓的下面的代码,比如说,连续 10 次,导致 Java 疯狂大约 10 秒。

这可以正常工作(就像互联网上的 5.000.000 个示例一样),但是在 play() 之后它会疯狂地产生线程(和滞后);方法被调用(每个悬停/调用数百个线程(如前所述))。

0 投票
0 回答
974 浏览

java - 无法让 AudioClip 与 Javafx 一起使用

我正在尝试让 AudioClip 使用我的教授动画模板播放 WAV 文件,但我似乎无法让它工作。我收到以下错误:

WAV 文件位于项目文件夹以及源文件夹中,以确保安全。我曾经在 Oracles 网站上为 AudioClip 编写代码。