Ich versuche ein Lied mit directsound abzuspielen



  • Ich hab schon ein Soundobjeckt mit Kooperativelevel angelegt und wollte fragen wie ich jetzt ein Lied laden kann

    Hier ist der Code

    #include <dsound.h>

    #define WINDOW_CLASS_NAME "Game Shell Window"
    #define WIN32_LEAN_AND_MEAN

    #include <windows.h>
    #define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
    #define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)
    void Init_Sound();

    HWND main_window_handle = NULL;
    HINSTANCE hinstance_app = NULL;
    LPDIRECTSOUND8 sound = NULL;

    LRESULT CALLBACK WindowProc(HWND hwnd,
    UINT msg,
    WPARAM wparam,
    LPARAM lparam)
    {

    PAINTSTRUCT ps;
    HDC hdc;

    // Nachrichtenverarbeitung
    switch(msg)
    {
    ......... break;

    }
    return (DefWindowProc(hwnd, msg, wparam, lparam));

    }

    int WINAPI WinMain( HINSTANCE hinstance,
    HINSTANCE hprevinstance,
    LPSTR lpcmdline,
    int ncmdshow)
    {

    WNDCLASSEX winclass;
    HWND hwnd;
    MSG msg;

    // Fenstereigenschaften festlegen:
    ..........

    hinstance_app = hinstance;

    if (!RegisterClassEx(&winclass))
    return(0);

    if (!(hwnd = CreateWindowEx(NULL,
    WINDOW_CLASS_NAME,
    "My Game Shell",
    WS_OVERLAPPEDWINDOW | WS_VISIBLE,
    0,0,
    1680,1050,
    NULL,
    NULL,
    hinstance,
    NULL)))
    return(0);

    main_window_handle = hwnd;
    Init_Sound();
    while(TRUE)
    {
    if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
    {

    if (msg.message == WM_QUIT)
    break;

    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }

    }

    return(msg.wParam);

    }
    void Init_Sound()
    {
    if(FAILED(DirectSoundCreate(NULL,(LPDIRECTSOUND*)&sound,NULL)))
    {
    MessageBox(main_window_handle,"Fehler","Fehler",MB_ICONSTOP);
    }
    sound->SetCooperativeLevel(main_window_handle,DSSCL_EXCLUSIVE);

    }



  • In der Dokus ist es erklaert und es gibt auch genug Beispielcode zum SDK dazu. f'`8k

    Autocogito

    Gruß, TGGC (Was Gamestar sagt...)



  • Außerdem geht hier unter 20 Euro garnix 😃


Anmelden zum Antworten