按键关闭无效果
我是第一次使用 FMod,我不明白为什么我的代码没有触发声音设计器的 keyoff。
工作环境
iOS
Xcode
已验证
.fev and event's keyoff tested with fmod_eventPlayer
all FOD_RESULT are OK
这里代码按时间顺序处理
-(void) initFmod
{
...
//init
result = _eventSystem->init(32, FMOD_INIT_NORMAL | FMOD_INIT_ENABLE_PROFILE, NULL, FMOD_EVENT_INIT_NORMAL);
...
//load music bank settings
result = FMOD_OK;
[[NSString stringWithFormat:@"%@/_music.fev", [[NSBundle mainBundle] resourcePath]] getCString:buffer maxLength:200 encoding:NSASCIIStringEncoding];
result = _eventSystem->load(buffer, NULL, NULL);
...
}
-(void) onMusicGameStart
{
///////////// LOAD Game Music ////////////
//Build Event name
FMOD_RESULT result = FMOD_OK;
NSString *musicGameEvent = @"music/music/music_sample_with_keyOff";
const char *eventGame = [musicGameEvent UTF8String];
//Get event from Fmod
result = _eventSystem->getEvent(eventGame, FMOD_EVENT_DEFAULT, &_musicGame);
result = _musicGame->start();
...
}
-(void) stopMusic
{
//Stop current Music
[self triggerEventKeyoff:_musicGame];
}
-(void) triggerEventKeyoff:(FMOD::Event*)event
{
if(event)
{
FMOD_RESULT result = FMOD_OK;
//Get Event's Parameter
FMOD::EventParameter *param;
result = event->getParameterByIndex(0, ¶m);
//Check error message
[self checkResult:result even:nil];
//trigger KeyOff
if(result == FMOD_OK)
{
result = param->keyOff();
//Check error message
[self checkResult:result even:nil];
}
}
}
与 _musicGame 关联的音乐不会播放其 KeyOff 而是继续播放。 _musicGame 仅在 onMusicGameStart() 中设置。
我不知道从现在开始要测试什么。
顺便说一句,我无法启动 fmod_profiler (启动时崩溃)。
感谢您的回复。
I'm using FMod for first time, and I don't understand why my code doesn't trigger Sound Designer's keyoff.
Working env
iOS
Xcode
Verified
.fev and event's keyoff tested with fmod_eventPlayer
all FOD_RESULT are OK
Here the code processed chronologically
-(void) initFmod
{
...
//init
result = _eventSystem->init(32, FMOD_INIT_NORMAL | FMOD_INIT_ENABLE_PROFILE, NULL, FMOD_EVENT_INIT_NORMAL);
...
//load music bank settings
result = FMOD_OK;
[[NSString stringWithFormat:@"%@/_music.fev", [[NSBundle mainBundle] resourcePath]] getCString:buffer maxLength:200 encoding:NSASCIIStringEncoding];
result = _eventSystem->load(buffer, NULL, NULL);
...
}
-(void) onMusicGameStart
{
///////////// LOAD Game Music ////////////
//Build Event name
FMOD_RESULT result = FMOD_OK;
NSString *musicGameEvent = @"music/music/music_sample_with_keyOff";
const char *eventGame = [musicGameEvent UTF8String];
//Get event from Fmod
result = _eventSystem->getEvent(eventGame, FMOD_EVENT_DEFAULT, &_musicGame);
result = _musicGame->start();
...
}
-(void) stopMusic
{
//Stop current Music
[self triggerEventKeyoff:_musicGame];
}
-(void) triggerEventKeyoff:(FMOD::Event*)event
{
if(event)
{
FMOD_RESULT result = FMOD_OK;
//Get Event's Parameter
FMOD::EventParameter *param;
result = event->getParameterByIndex(0, ¶m);
//Check error message
[self checkResult:result even:nil];
//trigger KeyOff
if(result == FMOD_OK)
{
result = param->keyOff();
//Check error message
[self checkResult:result even:nil];
}
}
}
The music associated to _musicGame doesn't play its KeyOff and just continue playing.
_musicGame is only set in onMusicGameStart().
I don't know what to test from this point.
By the way, I'm not able to launch fmod_profiler (crash at launch).
Thanks for your replies.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当前的 fmod_profiler 有一个错误,但修复起来很简单:
现在您可以运行该应用程序 关于keyoff
,我会联系 FMOD 支持。
There is a bug with the current fmod_profiler, it's simple to fix though:
Now you can run the app properly from the finder.
Regarding keyoff, I would contact FMOD support.