所有函数都会引发未定义的引用错误。
这是我的代码:
/*
terminal mp3 player android
requirements:
c4droid terminal fmod
requires:
copy fmod api lowlevel lib armeabi-v7a libs to lib dir
compile:
gcc -I./fmod/api/lowlevel/inc -L./fmod/api/lowlevel/lib/ mp3player.c -o mp3player
*/
#include <fmod.h>
#include <stdio.h>
static FMOD_SYSTEM * system;
static FMOD_SOUND * audioStream;
int main()
{
// Create FMOD interface object
FMOD_System_Create(&system);
FMOD_System_SetDSPBufferSize(system, 1000, 2);
FMOD_Channel_SetFrequency(0, 44100);
// Initialise FMOD
FMOD_System_Init(system, 64, FMOD_INIT_NORMAL, 0);
// Load Mp3
FMOD_System_CreateStream(system, "/storage/emulated/0/playlist/starat16.mp3", FMOD_DEFAULT, 0, &audioStream);
// Play mp3
FMOD_System_PlaySound(system, audioStream, 0, 0, 0);
return 0;
}
fmod.jar将解决此问题。如何在c4droid终端上使用它或与GCC一起使用?还是应该将C与libasound一起使用? Sdl混音器工作正常,但只能同时播放一个MP3,并逐个窗口捕获终端。
答案 0 :(得分:0)
我在编译命令末尾添加了-lfmod。现在它给出:fmod取决于libstdc ++。安装它。
答案 1 :(得分:0)
我做了一些更改,最终代码:
/*
terminal mp3 player android
requirements:
c4droid terminal fmod and install some dependencies
requires:
copy fmod api lowlevel lib armeabi-v7a libs to lib dir
compile:
gcc -I./fmod/api/lowlevel/inc -L./fmod/api/lowlevel/lib/ mp3player.c -o mp3player -lfmod
*/
#include <fmod.h>
#include <stdio.h>
static FMOD_SYSTEM * system;
static FMOD_SOUND * audioStream;
static FMOD_BOOL * isplaying;
int main()
{
// Create FMOD interface object
FMOD_System_Create(&system);
FMOD_System_SetDSPBufferSize(system, 1000, 2);
FMOD_Channel_SetFrequency(0, 44100);
// Initialise FMOD
FMOD_System_Init(system, 64, FMOD_INIT_NORMAL, 0);
// Load Mp3
FMOD_System_CreateStream(system, "/storage/emulated/0/playlist/starat16.mp3", FMOD_DEFAULT, 0,
&audioStream);
// Play mp3
FMOD_System_PlaySound(system, audioStream, 0, 0, 0);
isplaying=(FMOD_BOOL *)1;
while(FMOD_Channel_IsPlaying(0, isplaying))
{
}
return 0;
}
答案 2 :(得分:0)
否,只需下载并链接libstdc ++标头以进行编译器
编译命令:
gcc -I /存储/仿真/ 0 /下载/ fmodlowlatencymp3player / fmod / api /低级/ inc -I / system / inc / -L /存储/仿真/ 0 /下载/ fmodlowlatencymp3player / fmod / api /低级/ lib / -L / system / lib mp3player.c -o mp3player -lfmod -llog -lm -lstdc ++
答案 3 :(得分:0)
所有.so库都需要标头,将其下载到/ system / inc并使用-I指令将其链接到gcc。
答案 4 :(得分:0)
解决了!
为fmod下载并链接这些标头或dev数据包依赖项:
liblog安卓 libm安卓 libstdc ++ android
额外: fmod来源:针对Android 7和8进行编译