使用FMOD的C#?
我正在与C#中的FMOD合作.我尝试通过选择project->添加fmodex.dll添加引用和浏览来导入fmodex.dll文件,但是我遇到了一个错误: 无法添加对...的引用.请确保该文件可访问,并且是有效的组件或COM组件 它可以访问,但我仍然会遇到错误.我阅读了指南,它说在链接到fmodex.dll文件时使用fmodex_vc.lib.所以我尝试了,但是我似乎找不到如何链接到Visual Studio中的.lib文件;搜索Google总是会导致我链接到.dll文件. 解决方案 fmod用未托管的C ++编写,因此您不能直接从.NET应用程序引用它.如果我没记错的话,您可以添加到您的项目中,并且会照顾您的P/P/P/P/P/P/P/P/P > 其他解决方案 尝试 https://github.com/madrang/madrang/fmodsharp 几乎没有.它应该比当前的FMOD包装器更好. 而不是像在C#中使用C ++那样使用手柄和编码. Fmo
8 2024-04-15
编程技术问答社区
回调代表被收集?
一直在与C#Game开发的FMOD一起困扰,我很早就遇到了一个障碍,我似乎无法摆脱困境.我想做一些分支的音频内容,并同步节拍等等,因此我尝试在音乐曲目中添加Syncpoints.这是代码: public class Music { private Sound music; private Channel channel; private IntPtr syncPtr; public string File { get; private set; } public Music(string file) { File = file; } public void Load() { music = new Sound(); Audio.System.createSound(File, MODE.HARDWARE, ref music); } p
10 2024-04-13
编程技术问答社区
是否有任何数字可以在浮子上进行快速的模拟计算?
我知道,对于未签名的整数,如果除数是两个的功能,我可以用bitmask替换Modulo操作.任何数字是否具有相似的浮子属性?也就是说,是否有任何数字n可以比一般情况下更有效地计算f mod n,而不一定使用bitmask? 当然是一个. 编辑:要澄清,f是任何浮点数号(在运行时确定), n是任何格式的任何编译时常数数字,我希望结果是浮点. 解决方案 如果n == 1.0或n == -1.0,那么您可以做: r = f - trunc(f); 在x86_64上,如果n是2的功率,幅度大于或等于1,并且您的平台具有 fma 本机的功能(对于英特尔,这意味着Haswell或更新),然后您可以做 r = fma(-trunc(f / n), n, f); 任何合理的编译器都应将划分切换到乘法,然后将否定折叠到适当的FMA(或常数)中,从而导致乘法,截断和FMA. 这也可以适用于2的较小功率,只要结果不会溢出(因此编译器无法自由替换). 是否有任何编
28 2024-04-07
编程技术问答社区
在Visual Studio中编译和链接第三方库
我是C编程的新手,我以前从未使用过Visual Studio或第三方库.我正在尝试使用FMOD做一些简单的事情,并且需要链接fmodvclib,fmod.h,当然fmod.dll. . 我将fmodex_vc.lib放在附加的依赖项和库中和图书馆目录中的低级库以及其他包含库中的路径中,但是当我构建时,它给了我: "cannot open source file "fmod.h" identifier "FSOUND_SAMPLE" is undefined Cannot open include file: 'fmod.h': No such file or directory ,但即使是怪异的是: cannot open source file "stdio.h" 这是代码: #include "fmod.h" #include FSOUND_SAMPLE* handle; int main(void) { int inpu
8 2024-04-07
编程技术问答社区
将C语言的API函数回调成C++成员函数代码
所以,我正在使用FMOD API,它确实是C API. 不是那是不好的.它只是它与C ++代码的接口不佳. 例如,使用 FMOD_Channel_SetCallback( channel, callbackFunc ) ; 它想要callbackFunc的C风格函数,但我想通过它作为类的成员函数. 我最终使用了Win32技巧,从而使成员函数静态.然后,它可以作为fmod的回调. 现在,我必须分开我的代码才能使一些成员静态,只是为了解释FMOD的C- Ness. 我想知道它是否可以在FMOD中进行,或者是否有工作将回调链接到特定的C ++对象的实例成员函数(而不是静态函数).它会更顺利. 解决方案 您不能直接传递成员功能.成员函数具有隐式参数this和C函数. 您需要创建一个蹦床(不确定回调的签名,因此在此处进行随机做的事情). extern "C" int fmod_callback( ... args ...) { r
10 2024-04-06
编程技术问答社区
C & Fmod Ex-playing a PCM array/buffer in Real Time
我使用数组来处理无线电信号并获得原始的PCM音频.我拼命尝试使用fmod ex. 播放此音频 基本上,可以创建与我的圆形缓冲区相对应的流,我可以以线程安全的方式访问?关于使用哪种方法的任何基本信息将不胜感激. 如果否,其他任何Windows 7 API都可以解决问题吗? (Asio,Wasapi ...) thx° - ° 解决方案 我假设您的数据是连续的(始终更新),因此您需要将其流式传输到FMOD,为此,您可以覆盖特定声音的文件回调.有一个很好的例子,可以使用FMOD API用户创建的示例进行此操作.如果您只想播放静态缓冲区,只需填写描述数据的createSoundexinfo结构,使用fmod_openmemory标志,然后通过createSound作为name_or_data将指针传递到数据.以下是更复杂的流情况的一个示例: 创建声音时,您将使用fmod_createsoundexinfo指定数据的详细信息,然后将其传递给CreateStream.请
8 2024-04-04
编程技术问答社区
auto c++关键字的作用是什么?
我最近在C ++中获得了关键字自动. 在代码中: auto maxIterator = std::max_element(&spec[0], &spec[sampleSize]); float maxVol = *maxIterator; // Normalize if (maxVol != 0) std::transform(&spec[0], &spec[sampleSize], &spec[0], [maxVol] (float dB) -> float { return dB / maxVol; }); 这与在音频流上运行频率分析有关. 在网站上:http://katyscode.wordpress.com/2013/01/16/cutting-your-teeth-on-fmod-part-4-frequency-analysis-graphic-均衡器 - beat-detection-bpm估计/ 我搜索了论坛,但它说关键字没有用.有人可以在这里
16 2024-03-20
编程技术问答社区
纯粹从本地代码加载FMOD
我在FMOD示例文件夹中找到了一个称为NativeaCtivity的示例,但不幸的是它使用了一些Java代码: package org.fmod.nativeactivity; public class Example extends android.app.NativeActivity { static { System.loadLibrary("fmodex"); System.loadLibrary("main"); } } android.mk看起来像这样: LOCAL_PATH := $(call my-dir) # # FMOD Ex Shared Library # include $(CLEAR_VARS) LOCAL_MODULE := fmodex LOCAL_SRC_FILES := libfmodex.so LOCAL_EXPORT_C
10 2024-02-17
编程技术问答社区
Visual Studio 2015中Visual C++开发中的Jar依赖性
我正在尝试将FMOD添加到Visual Studio 2015中的跨平台项目. 我需要在项目中引用fmod.jar,但我不确定如何. 我已经将fmod.jar(和相应的文件夹+文件)添加到我称为lib的文件夹中,并且我已经更新了我的project.properties以包括jar.libs.dir = lib,但是当我尝试尝试时要在我的活动中调用system.loadlibrary(" fmod"),它说它找不到fmod.so. 我知道它在构建过程中意识到fmod.so文件(它们在每个相应的子文件夹中:ARM64-V8A,ARMEABI,ARMEABI-V7A和X86),因为我会抱怨如果我移动/删除任何一个他们. 任何帮助将不胜感激. 解决方案 似乎问题是Visual Studio 2015 Update 1.安装更新2后所有链接并运行正常.
10 2024-02-09
编程技术问答社区
如何在安卓系统中使用fmod播放midi文件?
我正在尝试使用FMOD播放MIDI文件.但是有一个错误说:无法找到插件所需的资源,(即MIDI播放的DLS文件) 我已经搜索了此类问题的结果,并转介到fmod.h文件.看来我需要一个名为" gs_instrument.dls"的文件,但我在Mac和Android Simulator文件系统中找不到它.我还搜索了网络中的资源,也没有结果. ,如果我想使用FMOD在Android中播放MIDI文件,该怎么办. 希望你能帮助我! 谢谢! 解决方案 我不知道FMOD,但是Android可以播放MIDI文件.这是对我有用的简化版本: MediaPlayer mediaPlayer = new MediaPlayer(); File f = [... my MIDI file ...]; FileInputStream fis = new FileInputStream(f); FileDescriptor fd = fis.getFD(); mediaPlay
14 2024-02-07
编程技术问答社区
使用Visual Studio 11 RC调试时未发现DLL依赖关系
我的项目是一个独立的C ++应用程序,它使用FMOD来播放声音.我以前曾使用Visual Studio 2010开发了同一项目,没有任何问题,但是2012年给我一个经典错误:"该程序无法启动,因为Fmodex.dll缺少您的计算机.尝试重新安装程序以解决此问题. "该项目似乎加载了其他DLL(例如Direct3D相关文件和D3D着色器编译器). 仅在试图从IDE调试或运行程序时,就会发生问题,而不是我将可执行文件复制到适当的目录并手动运行.如果我从程序中删除对FMOD的所有引用,则调试和运行正常.我已经确保在项目设置中具有正确的工作目录(此外,它还可以在同一目录中加载所有其他文件).我最初从Visual Studio 2010转换了该项目,但试图从头开始创建一个新项目,没有运气.我还修改了所有可能的编译器和链接器设置,并且谷歌搜索似乎也无济于事. 我猜想这个问题与新的Metro Style应用程序有关,并且是处理外部依赖eseces的方法,但我也将" Metro Style
16 2023-11-23
编程技术问答社区
在可执行文件中使用嵌入式.dll文件
好的.因此,我知道有关如何将DLL嵌入EXES的问题有很多问题,但是我的问题却大不相同. (具体来说,我正在使用FMOD库在程序中播放声音,并且正在嵌入fmod.dll,但这是重点.) 我正在使用Visual C ++ 2010 Ultimate.我已经成功地将.dll嵌入.exe内.我的资源.h文件包含 #define IDR_DLL1 144 和我的.rc文件包含 IDR_DLL1 DLL MOVEABLE PURE "data\\fmod.dll" 我在代码中具有以下功能(我完全是从另一个堆叠的问题中偷走的): bool extractResource(const HINSTANCE hInstance, WORD resourceID, LPCTSTR szFilename) { bool bSuccess = false; try { // Find and load the resource HRSRC hResour
16 2023-11-20
编程技术问答社区
C++:对'FMOD::X'的未定义引用。
四处寻找各种声音API库后,我决定暂时使用FMOD. 问题是,每当我尝试编译一个代码示例之一时,我都会得到以下错误: obj\Release\main.o:main.cpp|| undefined reference to `FMOD::System::getVersion(unsigned int*)@8'| obj\Release\main.o:main.cpp|| undefined reference to `FMOD::System::init(int, unsigned int, void*)@16'| obj\Release\main.o:main.cpp|| undefined reference to `FMOD::System::createSound(char const*, unsigned int, FMOD_CREATESOUNDEXINFO*, FMOD::Sound**)@20'| obj\Release\main.o:main.cpp|
26 2023-11-06
编程技术问答社区
使用FMOD将输出保存到磁盘
我正在使用fmod播放一些声音,我想将结果混合物保存到磁盘上. 我一直在尝试系统 - > recordStart(0,声音,true)路径,但这可以保存设备的麦克风输入. 以某种方式,我想将扬声器重定向到磁盘 谢谢 马克 解决方案 要重定向扬声器磁盘的所有内容,只需使用函数系统:: setOutput并以fmod_outputtype_wavwriter的值传递.在调用系统:: init之前,请确保调用此功能,当您完成呼叫系统::发布后,并且将出现一个wav文件. 您还可以通过系统通过系统:: init tustradriverdata参数来指定输出wav文件的名称和位置.
26 2023-08-02
编程技术问答社区
架构i386的重复符号错误
我尝试构建时会出现此错误: "重复符号__z8errcheck11fmod_result in: /Users/codemenmini2012-2/Library/Developer/Xcode/DerivedData/MagicSleepFullVersion-agxulkdijnxbqmbuigucmrczufyw/Build/Intermediates/MagicSleepFullVersion.build/Debug-iphonesimulator/MagicSleepFullVersion.build/Objects-normal/i386/MagicSleepViewController.o /Users/codemenmini2012-2/Library/Developer/Xcode/DerivedData/MagicSleepFullVersion-agxulkdijnxbqmbuigucmrczufyw/Build/Intermediates/Magic
46 2023-05-05
编程技术问答社区
未知的GCC链接器错误,但能成功构建
我正在尝试编译一个链接到Eclipse C/C ++ IDE中FMOD库的程序.我什至还没有包含任何图书馆的标题,我只在项目依赖项中添加了共享库,我会收到以下链接错误: Building target: Adventum Invoking: GCC C++ Linker g++-8 -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/GLFW" -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/Python" -L"/home/jkmcameron/Workplace/git/Adventum/Adventum/libs/FMOD" -o "Adventum" ./src/adventum/graphics/Display.o ./src/adventum/Main.o ./src/adventum/ScriptLoader.o -lglfw3 -l
28 2023-04-19
编程技术问答社区
c++的fmod函数的输出
给定: #include #include #include using namespace std; int main() { // your code goes here double h = .1; double x = 1; int nSteps = abs(x / h); double rem = fmod(x, h); cout::epsilon()) cout
38 2023-03-01
编程技术问答社区
c++ fmod 返回 0.2 for fmod(0.6,0.2)
当我在C ++中使用FMOD(0.6,0.2)时,它将返回0.2 我知道这是由浮点准确性引起的,但似乎我必须获得剩余的两倍, 非常感谢此类问题的任何解决方案 解决方案 数学值0.6和0.2不能完全用二进制浮点数表示. 此演示程序将向您展示发生的事情: #include #include #include int main() { const double x = 0.6; const double y = 0.2; std::cout
46 2023-02-25
编程技术问答社区
在可执行文件中使用嵌入式.dll文件
好的.因此,我知道关于如何将DLL嵌入EXES的问题有很多问题,但是我的问题却大不相同. (具体来说,我正在使用FMOD库在程序中播放声音,并且正在嵌入fmod.dll,但这是重点.) 我正在使用Visual C ++ 2010 Ultimate.我已经成功地将.dll嵌入了.exe内.我的资源.h文件包含 #define IDR_DLL1 144 和我的.rc文件包含 IDR_DLL1 DLL MOVEABLE PURE "data\\fmod.dll" 我在代码中具有以下功能(我完全从另一个stackoverflow问题偷走了): bool extractResource(const HINSTANCE hInstance, WORD resourceID, LPCTSTR szFilename) { bool bSuccess = false; try { // Find and load the resource HRSR
122 2023-02-24
编程技术问答社区