purebasic.info

PureBasic forum
Текущее время: Ср сен 19, 2018 4:09 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пт май 04, 2012 7:57 pm 
Не в сети
профессор

Зарегистрирован: Сб апр 16, 2011 8:59 am
Сообщений: 224
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Пётр писал(а):
Можно минифмод использовать.

можно, вопрос в размере музыки.
не рендерить же сэмплы...

и потом - а как воспроизводить с помощью fMod'a файл, который хранится в ресурсах?
из памяти?

_________________
Захотелось мартышки любви со слоном, тут она и лопнула


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт май 04, 2012 10:03 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11255
Благодарил (а): 4 раз.
Поблагодарили: 429 раз.
egons писал(а):
как воспроизводить с помощью fMod'a файл, который хранится в ресурсах?

из памяти?
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Structure MEMFILE 
  Length.l
  pos.l
  mdata.l
EndStructure
 
Procedure.l modopenmem(*memfile.MEMFILE)
  *memfile = AllocateMemory(SizeOf(MEMFILE))
  *memfile\mdata = ?mod
  *memfile\Length = ?modend - ?mod
  *memfile\pos    = 0
  ProcedureReturn *memfile
EndProcedure
 
Procedure.l modclosemem(*memfile.MEMFILE)
  FreeMemory(*memfile) : *memfile = #Null
EndProcedure
 
Procedure.l modreadmem(Buffer.l, size.l, *memfile.MEMFILE)
  If *memfile\pos + size >= *memfile\Length
    size = *memfile\Length - *memfile\pos
  EndIf
 
  CopyMemory(*memfile\mdata+*memfile\pos, Buffer, size)
 
  *memfile\pos + size  ; update filepointer position
  ProcedureReturn size
EndProcedure
 
Procedure modseekmem(*memfile.MEMFILE, pos.l, mode.l)
  Select mode
    Case #SEEK_SET
      *memfile\pos = pos
    Case #SEEK_CUR
      *memfile\pos+pos
  EndSelect
  If *memfile\pos > *memfile\Length
    *memfile\pos = *memfile\Length
  EndIf
EndProcedure
 
Procedure.l modtellmem(*memfile.MEMFILE)
  ProcedureReturn *memfile\pos
EndProcedure
 
FSOUND_File_SetCallbacks(@modopenmem(), @modclosemem(), @modreadmem(), @modseekmem(), @modtellmem())
 
modfile$ = ProgramParameter()
mod= FMUSIC_LoadSong(modfile$, #Null)
FMUSIC_PlaySong(mod)
 
MessageRequester("", "Для завершения проигрывания нажмите кнопку <OK>", 0)
 
 
DataSection
  mod:
  IncludeBinary "BRD - Teleport Prokg.xm"
  modend:
EndDataSection



Вложения:
MiniFmod_Mem.rar [45.77 KiB]
Скачиваний: 194

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)
Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB