Сейчас на форуме: zombi-vadim, zds (+4 невидимых)

 eXeL@B —› Программирование —› FMOD
Посл.ответ Сообщение


Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 05 июля 2013 16:38
· Личное сообщение · #1

Собственно пытаюсь заюзать эту дллку..
Конкретнее интересует функция _FSOUND_Sample_Load для загрузки образа МР3 файла из памяти.
В манах написано , что нужно устанавливать флаг FSOUND_LOADMEMORY который равен 8000h.
Так и делаю.. НО хрен грузится

Конкретнее, делаю так

invoke _FSOUND_Sample_Load, FSOUND_FREE, pMusic, FSOUND_LOADMEMORY+FSOUND_16BITS+FSOUND_STEREO,nMusicSize

где pMusic - указатель на начало буфера куда загружен МР3 файл, nMusicSize - размер в байтах
В результате возвращает ноль, что говорит об ошибке загузки.
Может кто-то сталкивался именно с данным случаем? В чем ошибка?
Заранее спасибо за помощь

P.S. Если грузить с диска МР3 файл, этой же функой все работает..т.е. вместо pMusic путь к файлу.
Но мне надо грузить из ресурсов, т.е. из памяти.

-----
aLL rIGHTS rEVERSED!





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 05 июля 2013 17:17
· Личное сообщение · #2

проверь декларацию функции там перед nMusicSize еще один аргумент помоему




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 05 июля 2013 17:21
· Личное сообщение · #3

reversecode пишет:
проверь декларацию функции там перед nMusicSize еще один аргумент помоему


Нет все правильно, --> 4 параметра по dword-у <--

-----
aLL rIGHTS rEVERSED!





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 05 июля 2013 17:24 · Поправил: reversecode
· Личное сообщение · #4

input mode, offset, length
у тебя offset как длинна
параметров 5




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 05 июля 2013 17:35
· Личное сообщение · #5

reversecode пишет:
input mode, offset, length
у тебя offset как длинна
параметров 5


Там или длина или смещение, в зависимости от флага. Если флаг FSOUND_LOADMEMORY то последним параметром идет размер блока памяти.

Вот такой код работает. Где здесь пятый параметр?
Code:
  1. invoke _FSOUND_Sample_Load, 0, addr Path, FSOUND_16BITS+FSOUND_STEREO, 0
  2. mov ModHandle, eax
  3. invoke _FSOUND_PlaySound, 0, ModHandle


-----
aLL rIGHTS rEVERSED!





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 05 июля 2013 17:37 · Поправил: reversecode
· Личное сообщение · #6

попытка не пытка?

Code:
  1. invoke _FSOUND_Sample_Load, FSOUND_FREE, pMusic,
  2.  FSOUND_LOADMEMORY+FSOUND_16BITS+FSOUND_STEREO,0, nMusicSize


--> Link <--
Code:
  1. data->rep = FSOUND_Sample_Load(FSOUND_FREE | FSOUND_UNMANAGED,
  2.         &buffer.front(), FSOUND_NORMAL | FSOUND_LOADMEMORY, 0, buffer.size());





Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 05 июля 2013 18:11
· Личное сообщение · #7

reversecode пишет:
попытка не пытка?

не работает

-----
aLL rIGHTS rEVERSED!





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 05 июля 2013 18:16
· Личное сообщение · #8

ошибка больше не возращается? может в указателе пусто?
может с флагами пошамать?




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 05 июля 2013 18:30
· Личное сообщение · #9

reversecode пишет:
ошибка больше не возращается?

Возвращает в еах == 0 как и прежде.
reversecode пишет:
может в указателе пусто?

Конечно не пусто
reversecode пишет:
может с флагами пошамать?


если об этих флагах FSOUND_FREE | FSOUND_UNMANAGED - их всего два, т.е. 3 варианта возможно

если об FSOUND_LOADMEMORY+FSOUND_16BITS+FSOUND_STEREO то они не взаимоисключающие .

-----
aLL rIGHTS rEVERSED!





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 05 июля 2013 18:32
· Личное сообщение · #10

аттач скомпиленые екзе и длл, глазком гляну




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 05 июля 2013 18:47 · Поправил: OnLyOnE
· Личное сообщение · #11

reversecode пишет:
аттач скомпиленые екзе и длл, глазком гляну

--> Link <--

-----
aLL rIGHTS rEVERSED!





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 05 июля 2013 18:58
· Личное сообщение · #12

да 4 параметра, утебя старая либа, не хочешь обновить ее? там где 5 параметров
и
смотри что возращает FSOUND_GetError()

| Сообщение посчитали полезным: OnLyOnE


Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 05 июля 2013 19:04 · Поправил: OnLyOnE
· Личное сообщение · #13

reversecode пишет:
да 4 параметра, утебя старая либа, не хочешь обновить ее? там где 5 параметров
и
смотри что возращает FSOUND_GetError()


Заработало), нашел причину

invoke _FSOUND_Sample_Load, 0, pMusic, FSOUND_LOADMEMORY+FSOUND_16BITS+FSOUND_STEREO,nMusicSize

reversecode

Спасибо за участие

-----
aLL rIGHTS rEVERSED!



 eXeL@B —› Программирование —› FMOD
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати