| |
|
|
Johannes Meyer | Grüßt euch , ich hoffe jemand kann mir weiterhelfen.
ich bin momentan dabei mich in Fmod.dll einzuarbeiten. nun habe ich eine stelle wo ich nicht weiterkommen . eventuell hat wer eine Idee.
ich will das die fmod.dll die Sounds aus dem Speicher(Ressource) holt dafür auch die definition.
Def &FMOD_OPENMEMORY $800
Api Befehl: 'FMOD_System_CreateStream(Systemb&,"Sound", &FMOD_OPENMEMORY, 0, Addr(Soundb&))
mit dem Befehl soll man dann den Sound auslesen aus dem Speicher nur eine sache ist mir unklar was die da in der api hilfe schreiben versteh ich nicht :/
mode den ich mitgebe der api funktion. FMOD_OPENMEMORY "name_or_data" will be interpreted as a pointer to memory instead of filename for creating sounds. Use FMOD_CREATESOUNDEXINFO to specify length.
hier noch kurz die parameter für die funktion oben die man mitgeben kann.
Zitat: Parameters
name_or_data Name of the file or URL to open. For CD playback this may be a drive letter with a colon, example "D:".
mode Behaviour modifier for opening the sound. See FMOD_MODE. Also see remarks for more.
exinfo Pointer to a FMOD_CREATESOUNDEXINFO which lets the user provide extended information while playing the sound. Optional. Specify 0 or NULL to ignore.
sound Address of a variable to receive a newly created FMOD::Sound object. funkitionier alles nur hab keine ahnugn wie ich dem nun die adresse gebe für die Ressource. Laut support soll das so gehen mit "FMOD_OPENMEMORY"
teil is das der Auszug aus der Api hilfe von der fmod.dll
Wäre echt cool wenn wer ne idee hat ;)
Gruß und danke. |
|
|
| |
|
|
|
Johannes Meyer | Hat hier keine eine idee wie man in Profan einen Pointer wie man ihn aus C++ kennt benutzt ?
hab hier das ganze als C++ code gefunden vielleicht kann das ja wer übersetzten
Code:
void LoadFileIntoMemory(const char *name, void **buff, int *length) { FILE *fp = fopen(name, "rb");
fseek(fp, 0, SEEK_END); *length = ftell(fp); fseek(fp, 0, SEEK_SET);
*buff = malloc(*length); fread(*buff, *length, 1, fp);
fclose(fp); }
LoadFileIntoMemory("../media/drumloop.wav", &buff, &length); memset(&exinfo, 0, sizeof(FMOD_CREATESOUNDEXINFO)); exinfo.cbsize = sizeof(FMOD_CREATESOUNDEXINFO); exinfo.length = length;
result = FMOD_System_CreateSound(system, (const char *)buff, FMOD_HARDWARE | FMOD_OPENMEMORY, &exinfo, &sound1); |
|
|
| |
|
|
|
| Du kannst doch Pointern bis zum Umfallen -
mit Dim erzeugst solch Speicher und der Variablenwert entspricht dem Pointer. KompilierenMarkierenSeparieren Addr(s$) liefert auch die Adresse der Bytes im String. |
|
|
| |
|
|
|
Johannes Meyer | @If ok danke, das wusste ich nicht . Hab damit noch nicht so gearbeitet ;) Also mit Speicherzuweisung etc. |
|
|
| |
|
|
|
Johannes Meyer | |
|
| |
|
|