Fmod Stream 用于工作
Fmod Stream use to work
这是我的问题。我正在尝试设置流以在我的程序中播放。
它曾经运行良好,然后我更改了 class 的名称,现在它不再运行了,我从结果中得到错误 30。
我找不到任何解释为什么它以前有效而现在却无效。
这是我的 SoundStream.h
#include "fmod.hpp"
#include "common.h"
#include <iostream>
class SoundStream
{
public:
FMOD::System *system,*sys;
FMOD::Sound *sound, *sound_to_play;
FMOD::Channel *channel = 0;
FMOD_RESULT result;
void startStream()
{
result = system->init(32, FMOD_INIT_NORMAL, 0);
std::cout << result << std::endl;
result = system->createStream("singing.wav", FMOD_LOOP_NORMAL | FMOD_2D, 0, &sound);
std::cout << result << std::endl;
sound_to_play = sound;
result = system->playSound(sound_to_play, 0, false, &channel);
std::cout << result << std::endl;
std::cout << "Working" << std::endl;
}
};
在我的其他函数中是这样创建的:
SoundStream soundStream;
soundStream.startStream();
一切都已正确链接。
谢谢
您似乎没有创建系统对象:
System_Create(&system);
此外,您传递给 System::playSound 的参数无效(我使用的是 FMOD 4.44.58-1)。
这是一个工作示例:
#include "fmod.hpp"
class SoundStream
{
public:
FMOD::System *system;
FMOD::Sound *sound;
FMOD::Channel *channel;
void startStream()
{
System_Create(&system);
system->init(32, FMOD_INIT_NORMAL, 0);
system->createStream("singing.wav", FMOD_LOOP_NORMAL | FMOD_2D, 0, &sound);
system->playSound(FMOD_CHANNEL_REUSE, sound, false, &channel);
}
};
int main(int argc, char** argv)
{
SoundStream soundStream;
soundStream.startStream();
while(true) {} // ctrl + c to exit
return 0;
}
这是我的问题。我正在尝试设置流以在我的程序中播放。 它曾经运行良好,然后我更改了 class 的名称,现在它不再运行了,我从结果中得到错误 30。 我找不到任何解释为什么它以前有效而现在却无效。 这是我的 SoundStream.h
#include "fmod.hpp"
#include "common.h"
#include <iostream>
class SoundStream
{
public:
FMOD::System *system,*sys;
FMOD::Sound *sound, *sound_to_play;
FMOD::Channel *channel = 0;
FMOD_RESULT result;
void startStream()
{
result = system->init(32, FMOD_INIT_NORMAL, 0);
std::cout << result << std::endl;
result = system->createStream("singing.wav", FMOD_LOOP_NORMAL | FMOD_2D, 0, &sound);
std::cout << result << std::endl;
sound_to_play = sound;
result = system->playSound(sound_to_play, 0, false, &channel);
std::cout << result << std::endl;
std::cout << "Working" << std::endl;
}
};
在我的其他函数中是这样创建的:
SoundStream soundStream;
soundStream.startStream();
一切都已正确链接。
谢谢
您似乎没有创建系统对象:
System_Create(&system);
此外,您传递给 System::playSound 的参数无效(我使用的是 FMOD 4.44.58-1)。
这是一个工作示例:
#include "fmod.hpp"
class SoundStream
{
public:
FMOD::System *system;
FMOD::Sound *sound;
FMOD::Channel *channel;
void startStream()
{
System_Create(&system);
system->init(32, FMOD_INIT_NORMAL, 0);
system->createStream("singing.wav", FMOD_LOOP_NORMAL | FMOD_2D, 0, &sound);
system->playSound(FMOD_CHANNEL_REUSE, sound, false, &channel);
}
};
int main(int argc, char** argv)
{
SoundStream soundStream;
soundStream.startStream();
while(true) {} // ctrl + c to exit
return 0;
}