如何获得FMOD输出progressbar&;游戏与娱乐;暂停android java活动
我在android中使用FMOD库,我不知道如何获得输出进度条或快速播放/暂停/停止声音,效果如下: 我尝试使用fomd文档,我知道如何获得输出,但问题是我找不到任何东西 我是android和ndk的初学者 这是我的代码,我无法在java活动中控制播放暂停或停止并获取输出进度条:如何获得FMOD输出progressbar&;游戏与娱乐;暂停android java活动,java,android,c++,android-ndk,fmod,Java,Android,C++,Android Ndk,Fmod,我在android中使用FMOD库,我不知道如何获得输出进度条或快速播放/暂停/停止声音,效果如下: 我尝试使用fomd文档,我知道如何获得输出,但问题是我找不到任何东西 我是android和ndk的初学者 这是我的代码,我无法在java活动中控制播放暂停或停止并获取输出进度条: System *system; Sound *sound; DSP *dsp; Channel *channel; float frequency; bool isPlaying = true; FMOD_RESUL
System *system;
Sound *sound;
DSP *dsp;
Channel *channel;
float frequency;
bool isPlaying = true;
FMOD_RESULT result;
System_Create(&system);
if (save == 1) {
unsigned int outputhandle;
system->setOutput(FMOD_OUTPUTTYPE_WAVWRITER);
system->init(32, FMOD_INIT_NORMAL,(void *) "/sdcard/sound.mp3");
} else{
system->init(32, FMOD_INIT_NORMAL, NULL);
}
const char *path_cstr = env->GetStringUTFChars(path_jstr, NULL);
try {
system->createSound(path_cstr, FMOD_DEFAULT, NULL, &sound);
switch (type) {
case TYPE_NORMAL:
LOGI("%s", path_cstr)
system->playSound(sound, 0, false, &channel);
LOGI("%s", "fix normal");
break;
case TYPE_LOLITA:
system->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp);
dsp->setParameterFloat(FMOD_DSP_PITCHSHIFT_PITCH, 8.0);
system->playSound(sound, 0, false, &channel);
channel->addDSP(0, dsp);
break;
case TYPE_UNCLE:
system->createDSPByType(FMOD_DSP_TYPE_PITCHSHIFT, &dsp);
dsp->setParameterFloat(FMOD_DSP_PITCHSHIFT_PITCH, 0.8);
system->playSound(sound, 0, false, &channel);
channel->addDSP(0, dsp);
break;
case TYPE_THRILLER:
system->createDSPByType(FMOD_DSP_TYPE_TREMOLO, &dsp);
dsp->setParameterFloat(FMOD_DSP_TREMOLO_SKEW, 5);
system->playSound(sound, 0, false, &channel);
channel->addDSP(0, dsp);
break;
case TYPE_FUNNY:
system->createDSPByType(FMOD_DSP_TYPE_NORMALIZE, &dsp);
system->playSound(sound, 0, false, &channel);
channel->addDSP(0, dsp);
channel->getFrequency(&frequency);
frequency = frequency * 2;
channel->setFrequency(frequency);
break;
case TYPE_ETHEREAL:
system->createDSPByType(FMOD_DSP_TYPE_ECHO, &dsp);
dsp->setParameterFloat(FMOD_DSP_ECHO_DELAY, 300);
dsp->setParameterFloat(FMOD_DSP_ECHO_FEEDBACK, 20);
system->playSound(sound, 0, false, &channel);
channel->addDSP(0, dsp);
break;
case TYPE_Sajjad:
system->createDSPByType(FMOD_DSP_TYPE_CHORUS, &dsp);
dsp->setParameterFloat(FMOD_DSP_CHORUS_DEPTH, 90.0f);
system->playSound(sound, 0, false, &channel);
channel->addDSP(0, dsp);
channel->getFrequency(&frequency);
// frequency = frequency * 2;
channel->setFrequency(frequency);
break;
}
} catch (...) {
LOGE("%s", "catch exception...")
goto end;
}
system->update();
while (isPlaying) {
channel->isPlaying(&isPlaying);
usleep(1000 * 1000);
}
goto end;
end:
env->ReleaseStringUTFChars(path_jstr, path_cstr);
sound->release();
system->close();
system->release();
我是初学者,请给我一些代码