标签: fmod

FMOD频道setVolume不起作用

我用这个:

err = channel->setVolume(someVolumeBetween0and1);
Run Code Online (Sandbox Code Playgroud)

即使错误是FMOD_OK,音量也不会改变.难道我做错了什么?有没有办法改变声音(频道)的音量?是否有其他的音量范围而不是[0,1]?

谢谢!

编辑:我在此之后使用setVolume:

err = soundSystem->playSound(FMOD_CHANNEL_FREE, sound, false, &channel);
Run Code Online (Sandbox Code Playgroud)

audio fmod

2
推荐指数
1
解决办法
5635
查看次数

如何在OpenAL中获取具有单个缓冲区的源的长度(持续时间)?

我正在从FMOD迁移到OpenAL,我找不到FSOUND_Sample_GetLength()函数的模拟,它返回样本中的样本长度(它不考虑频率)...我得到OpenAL缓冲区名称来自alutLoadMemoryFromFileImage(),所以我无法以这种方式得到波形数据.

请帮忙!

c++ openal fmod

2
推荐指数
1
解决办法
2423
查看次数

在可执行文件中使用嵌入式 .dll

好的。所以我知道有很多关于如何在 exe 中嵌入 dll 的问题,但我的问题是相当不同的。(具体来说,我正在使用 fmod 库在我的程序中播放声音,并且我正在嵌入 fmod.dll,但这不是重点。)

我使用的是 Visual C++ 2010 Ultimate。我已成功将 .dll 嵌入到 .exe 中。我的 resources.h 文件包含

#define IDR_DLL1  144
Run Code Online (Sandbox Code Playgroud)

我的 .rc 文件包含

IDR_DLL1  DLL  MOVEABLE PURE  "data\\fmod.dll"
Run Code Online (Sandbox Code Playgroud)

我的代码中有以下函数(我完全从另一个 stackoverflow 问题中窃取了它):

bool extractResource(const HINSTANCE hInstance, WORD resourceID, LPCTSTR szFilename)
{
bool bSuccess = false; 
try
{
    // Find and load the resource
    HRSRC hResource = FindResource(hInstance, MAKEINTRESOURCE(resourceID), L"DLL");
    HGLOBAL hFileResource = LoadResource(hInstance, hResource);

    // Open and map this to a disk file
    LPVOID lpFile = LockResource(hFileResource);
    DWORD dwSize …
Run Code Online (Sandbox Code Playgroud)

c++ dll fmod visual-c++

2
推荐指数
1
解决办法
9031
查看次数

FMOD声音库 - 同步点让我疯狂!

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

public void Play()
{
    if (intro != null)
    {
        CHANNELINDEX index = (channel == null) ? CHANNELINDEX.FREE : CHANNELINDEX.REUSE;
        system.playSound(index, intro, false, ref channel);
        uint length = 0;
        intro.getLength(ref length, TIMEUNIT.MS);
        intro.addSyncPoint(length, TIMEUNIT.MS, "StartLoop", ref loopPtr);
        channel.setCallback(callback);
    }
    else system.playSound(CHANNELINDEX.FREE, loop, false, ref channel);
    Playing = true;
}
Run Code Online (Sandbox Code Playgroud)

这是同步点:

private FMOD.RESULT SyncCallback(IntPtr c, CHANNEL_CALLBACKTYPE type, IntPtr a, IntPtr b)
{
    if (Playing)
    {
        RESULT result = intro.getSyncPoint(0, ref loopPtr);
        intro.deleteSyncPoint(loopPtr);
        system.playSound(CHANNELINDEX.REUSE, loop, false, ref channel);
    }
    return …
Run Code Online (Sandbox Code Playgroud)

c# audio fmod

1
推荐指数
1
解决办法
2411
查看次数

不能在iOS上包含FMOD

我认为我没有正确地包含FMOD库.我收到以下XCode错误:FMOD之前的期望说明符限定符列表

我正在使用XCode 4和最新版本的FMOD库.我进入了XCode中的"Link Binaries With Libraries"部分,并添加了libfmodex_iphonesimulator.a.

关于我可能做错的任何想法?

谢谢!

iphone fmod ios

1
推荐指数
1
解决办法
2420
查看次数

lambda函数c ++ 11

知道如何重写这个lambda函数pre c ++ 11吗?

    if (maxVol != 0)
       std::transform(&spec[0], &spec[sampleSize], &spec[0]
                     , [maxVol] (float dB) -> float {   return dB / maxVol; });
Run Code Online (Sandbox Code Playgroud)

代码来自http://katyscode.wordpress.com/2013/01/16/cutting-your-teeth-on-fmod-part-4-frequency-analysis-graphic-equalizer-beat-detection-and-bpm-估计

谢谢

c++ audio fmod c++11

-2
推荐指数
1
解决办法
151
查看次数

标签 统计

fmod ×6

audio ×3

c++ ×3

c# ×1

c++11 ×1

dll ×1

ios ×1

iphone ×1

openal ×1

visual-c++ ×1