问题标签 [fmod]

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 投票
7 回答
2649 浏览

c++ - 添加 fmod Visual C++ 测试后,如果某个测试中的某些代码行,所有测试都失败、无法获取类型和 FileNotFoundException

我已经弄清楚是什么导致了这个问题,但我仍然不知道为什么——它发生在我开始fmod使用.dll. 我的测试代码是一个静态库;它指的是fmodex_vc另一个静态库,它在某个时候(虽然我不知道什么时候)决定加载它的fmodex.dll. (它和其他所有东西都在同一个目录中,所以我不知道为什么它找不到它。)据我所知,被测代码绝对不会调用 fmod 初始化函数,但也许 fmod 有一些初始化自身并加载到 dll 中的静态全局初始化程序?只有当使用它的模块中的代码被……使用时,该代码才会被拉入?

我正在使用 Visual Studio 测试框架测试非托管 C++ 代码,当我开始使用 fmod 时它停止工作:每个测试,甚至是什么都不做的“测试”测试,都会报告(为便于阅读而包装):

经过大量试验和错误,排除.cpp文件并重新添加它们,我发现只有一个测试文件引发了问题;并且只有在调用此行时才会这样做:

有趣的是,如果该行在代码中 ,则所有测试都会以该消息开始失败。EntityMgr::Init()是一个很少做的函数:

Entity, FWIW, 是一个非常普通的类,没有指针,float它的字段只有各种 s。

  • 无论我如何运行测试(从测试视图、运行选定、运行全部、从命令行运行、从测试菜单),我都会收到错误消息。
  • 尝试使用调试器进入测试失败 - 测试在调试器进入之前失败。将调试器设置为在系统异常上中断也无济于事。
  • 被测代码是一个静态 .lib。CLR 支持是/clr.
  • 哦,这只是:如果我调用一个静态实体成员函数,同样的处理。如果我将所说的静态函数移到课堂之外,同样的处理。但是,如果我将该功能移至另一个模块,那就没问题了。

如果我将调试器设置为中断任何异常,我会得到一些有趣的东西:

当然,那个位置没有源代码。这是调用堆栈:

这是 mstest 报告的堆栈跟踪 - 我没有从中得到任何有用的信息。

为什么 fmod 这样做?

0 投票
1 回答
694 浏览

fmod - 如何使用 FMOD 延迟每个扬声器的声音?

我设置了一个支持多声道的声音,所以现在我需要延迟每个扬声器中的声音。我怎样才能用 FMODEx 做到这一点?有可能这样做吗?

谢谢你帮助我!:)

0 投票
2 回答
1223 浏览

visual-studio - fmod VS2008 依赖项目中未解决的外部问题

我目前正在尝试在我的项目中使用最新的稳定 fmod ex。

我在一个名为 engine4 的项目中有一个主要的可执行文件,在解决方案中还有一个名为 DX9Platform 的项目,以及 ti 所依赖的。所有的 fmod 代码都在这个 DX9Platform 项目中,它会生成一个 lib 文件。

DX9Platform 包含 fmodex_vc.lib 并且构建良好。但是,构建 Engien4 会导致无法解析的外部符号消息引用在 DX9Platform 项目中使用 fmod 的文件

我尝试将 fmodex_vc.lib 添加到 Engine4 项目,但没有成功,我该如何解决这个问题?

这是链接器输出:

0 投票
1 回答
2459 浏览

c# - FMOD 声音库 - 同步点让我抓狂!

有FMOD经验的人可以阻止我失去它。我无法让这些同步点正常运行。我有一些游戏音乐,由两部分组成,一个介绍和一个循环。它们是独立的声音,在前奏结束后,它开始循环部分,永远重复。我在介绍的末尾设置了一个同步点来触发循环。它工作得很好,直到我尝试停止并重新启动音乐(例如当播放器死亡时)。无论如何,同步点坚持在 intro 重新启动后立即触发,即使它已设置为 intro 结束。效果是音乐的两个部分同时播放 - 似乎在一个频道上,因为我告诉它重用频道。这甚至可能吗?这是我的一些代码(注意系统、介绍、循环和通道是成员变量):

这是同步点:

至少,这是回调的一个版本。我已经尝试了大约 20 个人。请注意,我告诉它删除同步点 - 当我检查返回时它是好的。为了以防万一,我也尝试了 loop.deleteSyncPoint。我还对其进行了 getsyncpointinfo 以确保触发的是我的 StartLoop 同步点。然而,当再次调用 play 时,它仍然会触发,在调用 stop 之后:

请注意,Stop() 也尝试删除同步点,但它也没有这样做(即使结果返回 OK)。我尝试在停止时将通道位置设置为 0,这使情况变得更糟。在 deletesyncpoint() 调用之后,我在我的同步点中尝试了 channel.stop() ,但这导致了堆栈溢出,因为它在每次调用时继续调用同步点以停止,尽管尝试将其删除。我给它错误的指针还是什么?我已经尝试制作某种标志来表示不播放循环部分,但我不能,因为它会设置在 Play() 的中间,并且在 Play() 完成后立即调用同步点,在下次调用系统更新时。FMOD 坏了还是我遗漏了一些明显的东西?或者一些真正模糊和无证的东西......

0 投票
3 回答
630 浏览

.net - Lib 在 .NET 中播放音频媒体?

我尝试了 fmod.net,但出现“System.BadImageFormatException”错误。然后我尝试了 WindowsMediaPlayer 并播放了声音。但是我在当前播放结束时播放声音时遇到问题(下面的回调代码。它似乎不喜欢我在状态更改期间播放新歌但是我找不到另一种方式来通知我歌曲完成时)并使用这个链接我能够获得标题,但不能获得艺术家、专辑等。

我可以使用什么库来播放声音(mp3、m4a,我想要 ogg 和 aac)。我查找了 FFMPEG.NET 并找到了一个没有发布的项目和另一个名为 fflib 的项目,它似乎只进行转换(并且也有错误的图像异常)。我可以用什么?或我如何在 WMPLib.WindowsMediaPlayer 中获取标题/艺术家/等,并让它在结束时播放另一首歌曲(我不想在 WMP 中添加播放列表。我想维护它并在出现时收到通知歌曲结束做进一步的动作)。

0 投票
1 回答
304 浏览

silverlight - Silverlight 应用程序中的 Naudio 或 FMOD 库

我必须从麦克风中抓取音频并将其写入“即时”流式传输。目标机器将读取此数据并播放。这一切都将是 Silverlight 应用程序。那么我可以使用 Naudio 库或 FMOD 来实现我的目的吗?

提前谢谢!

0 投票
3 回答
2202 浏览

c - 使用 FMOD 仅播放声音的一部分

我正在尝试使用 FMOD 仅播放部分声音,例如 200000 帧文件的 50000-100000 帧。我找到了几种向前搜索的方法(即在第 50000 帧开始播放),但我还没有找到确保声音在 100000 停止播放的方法。有没有什么方法可以让 FMOD 本身做到这一点而无需添加 lbsndfile还是图片之类的?

我还应该提到我正在使用流式传输选项。我不得不假设这些声音是任意大的,并且不能舒适/快速地加载到内存中。

0 投票
1 回答
1734 浏览

fmod - 非播放音频上的 FMOD

  1. 嘿,如果没有播放,有什么方法可以使用 FMOD 获取歌曲部分的音频频谱?
  2. 我可以在播放歌曲之前使用 FMOD (+opengl/openframeworks/etc.) 渲染完整的歌曲波形吗?
0 投票
1 回答
1102 浏览

c - FMOD 播放重叠声音

这可能是 FMOD 的内置功能,但我想看看我是否可以覆盖它。

使用 FMOD_System_PlaySound 播放 SOUND 时,

(是的,我使用 C api;))

如果您已经开始播放 SOUND,那么原来的声音会停止并且 SOUND 会重新开始。

效果是原始声音被“切断”。我不希望这样,我希望 SOUND 自身重叠......我希望声音的另一个“实例”开始播放,而不会影响已经播放的原始声音。

0 投票
5 回答
6546 浏览

c++ - C API 函数回调到 C++ 成员函数代码

所以,我正在使用 FMOD api,它确实是一个 C api。

并不是说这很糟糕或任何事情。只是它与 C++ 代码的接口不好。

例如,使用

它需要一个 C 风格的函数callbackFunc,但我想将一个类的成员函数传递给它。

我最终为此使用了 Win32 技巧,使成员函数成为静态的。然后它作为 FMOD 的回调。

现在我必须破解我的代码以使一些成员静态,只是为了说明 FMOD 的 C 特性。

我想知道它在 FMOD 中是否可行,或者是否有办法将回调链接到特定 C++ 对象的实例成员函数(不是静态函数)。会顺畅很多。