Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > C/C++: Системное программирование и WinAPI > Воспроизведение Mid файлов из ресурса |
Автор: Dr.Ace 08.03.05, 18:14 |
Люди как воспроизвести миди файл из ресурса програмы ? Знаю как воспроизводить из файла : <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> // 1. MCIHwnd = MCIWndCreate(Application->Handle, HInstance, NULL, "test.mid"); MCIWndPlay(MCIHwnd); // 2. mciSendString("open ding.mid .... ",NULL, 0, NULL); //точно не помню mciSendString("play snd repeat",NULL, 0, NULL); А как это сделать из ресурса програмы ??? |
Автор: SpawnProduction 08.03.05, 18:16 |
Хм, вот тут работу с ресурсами обсуждали - Вставка битмапов из ресурса Добавлено Правда вот запустить midi придётся далеко не с помощью mciSendString Так, а зачем вообще в ресурсы midi загоняешь ? |
Автор: Dr. Ace 08.03.05, 18:25 |
Для того чтоб прога была махонькой и компактной, а не з кучей файлов ! Ээ, некоторые люди умеют это делать ... |
Автор: SpawnProduction 08.03.05, 18:27 |
Хм, ну тогда сам exe будет большой |
Автор: Dr.Ace 08.03.05, 18:30 |
Не очень. Где-то 300К(WinApi) или 800К (С++Builder) |
Автор: SpawnProduction 08.03.05, 18:35 |
Мне такое один умный человек посоветовал... Цитата со временем ты поймешь, что чем больше разных модулей в программе(а не все в одной куче), тем лучше, из-за того, что приложение при загрузке будет меньше весить, будет легче сопровождаться, развертываться и обновляться. |
Автор: Dr.Ace 08.03.05, 18:41 |
Может вы и правы. Но вопрос не о том, сколько оно будет весить , а том как это заделать ... |
Автор: P.O.D 08.03.05, 21:27 |
Вроде как именно midi файл не получится. |
Автор: Dr.Ace 08.03.05, 21:55 |
Ну не знаю ... По теории не знаю, а вот файлик который доказывает обратное (голая практика) накину Факты вещь упрямая ! |
Автор: P.O.D 09.03.05, 09:33 |
Dr.Ace, да. Я совсем забыл про кряки Там кстати xm файл, но все равно интересно. Сейчас посмотрим... Добавлено 1. http://www.delphifr.com/codes/JOUER_XM_EN_PEU_DE_CODE_-NO_DLL-/23849.aspx 2. http://www.wasm.ru/src/4/ufmod.zip |
Автор: -vja^m7- 09.03.05, 10:31 |
Не, господа, вы не правы! Когда один экзешник и его размер меньше 2-3 мб, то это рулит! Зачем на маленький проект юзать кучу фигни? И еще, ексли используется файл ресурсов, то те ресурсы, которые не юзаются, не подгружаются в оперативу, а учитывая небольшой размер проги, то все ок ps: asm forever! |
Автор: CBP 10.03.05, 10:24 |
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> #define WIN32_LEAN_AND_MEAN #include <dmusici.h> #define IDR_RCDATA_MID 12345 #pragma comment(lib, "dxguid") #pragma comment(lib, "ole32") #pragma comment(lib, "user32") IDirectMusicLoader* g_pLoader = NULL; IDirectMusicPerformance* g_pPerformance = NULL; IDirectMusicSegment* g_pSegment = NULL; int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { CoInitialize(NULL); CoCreateInstance(CLSID_DirectMusicLoader, NULL, CLSCTX_INPROC, IID_IDirectMusicLoader, (void**)&g_pLoader); CoCreateInstance(CLSID_DirectMusicPerformance, NULL, CLSCTX_INPROC, IID_IDirectMusicPerformance, (void**)&g_pPerformance); g_pPerformance->Init(NULL, NULL, NULL); g_pPerformance->AddPort(NULL); HMODULE hModule = GetModuleHandle(NULL); HRSRC hResource = FindResource(hModule, MAKEINTRESOURCE(IDR_RCDATA_MID), RT_RCDATA); HGLOBAL hData = LoadResource(hModule, hResource); DMUS_OBJECTDESC desc = {sizeof(DMUS_OBJECTDESC)}; desc.pbMemData = (BYTE*)LockResource(hData); desc.llMemLength = SizeofResource(hModule, hResource); desc.guidClass = CLSID_DirectMusicSegment; desc.dwValidData = DMUS_OBJ_CLASS | DMUS_OBJ_MEMORY; g_pLoader->GetObject(&desc, IID_IDirectMusicSegment, (void**)&g_pSegment); g_pSegment->SetParam(GUID_Enable_Auto_Download, -1, 0, 0,(void *)g_pPerformance); g_pPerformance->PlaySegment(g_pSegment, 0, 0, NULL); MessageBox(NULL, "Click OK to Stop.", "Playing MIDI...", MB_OK); g_pPerformance->Stop(g_pSegment, NULL, 0, 0); g_pPerformance->CloseDown(); g_pLoader->Release(); g_pPerformance->Release(); g_pSegment->Release(); CoUninitialize(); return 0; } гы, люблю из пушки по воробьям лупить... картечью %) Добавлено .rc <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> 12345 RCDATA "GIMN2.MID" |
Автор: wareznick 07.07.09, 20:53 |
а на делфях код? а чо за хедер такой <dmusici.h> ?? |
Автор: kanes 07.07.09, 21:01 |
а самому написать? или спрашивай в соответствующем разделе: Delphi: Multimedia один из хедеров DirectX Audio |
Автор: wareznick 08.07.09, 11:11 |
я то си-синтаксис понимаю и на сях программил. Меня интересует такое на Делфях и через АПИ |
Автор: kanes 08.07.09, 11:17 |
а это через кого? здесь же используется DirectX Audio, какая разница на чем программить в данном случае? |
Автор: Muran 14.07.09, 04:24 |
а повежливее?? |