首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fmod流用于工作

Fmod流用于工作
EN

Stack Overflow用户
提问于 2016-04-19 16:12:28
回答 1查看 537关注 0票数 0

这是我的问题。我正在尝试建立一个流来播放我的节目。它曾经很好的工作,然后我改变了我的类的名称,现在它不再工作了,我从结果中得到了错误30。我以前找不到任何解释,现在也找不到任何解释。这是我的声音溪流。

代码语言:javascript
复制
#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;
    }
};

在我的另一个函数中像这样创建它:

代码语言:javascript
复制
SoundStream soundStream;
soundStream.startStream();

一切都是正确的。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-23 18:49:58

似乎您没有创建系统对象:

System_Create(&system);

另外,您要传递给System::playSound的参数无效(我使用的是FMOD 4.44.58-1)。

下面是一个有用的例子:

代码语言:javascript
复制
#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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36723917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档