Muzyka w C++

0

Witam, chciałbym dodać muzykę do programu. Pracuję w CodeBlocks.
Mój kod:

#include <iostream>
#include <fstream>
#include <string>
#pragma comment(lib, "winmm.lib")
#include <windows.h>
using namespace std;
int main()
{
    int a;
    PlaySound("01.wav", NULL, SND_ASYNC|SND_FILENAME|SND_LOOP);
    cin >> a;
  return 0;
}

Kod działa tylko muzyka nie leci prócz windowsowego "pykania". Trzeba to chyba dodać do plików z grą lecz nie wiem jak.

0

Plik 'muzyczny' na pewno znajduje się w dobrym folderze? Może podaj ścieżkę bezwzględną. Próbowałeś z samym SND_FILENAME w PlaySound?

0

Plik znajduję się w tym samym co plik .exe a z SND_FILENAME nie próbowałem. Mógłbyś podać kod?

0
PlaySound("01.wav", NULL, SND_FILENAME);

Upewnij się jeszcze, że ścieżka i nazwa Twojego dźwięku jest poprawna.

0

Na stronach MS znalazłem taki przykład:

PlaySound(TEXT(<"recycle.wav"), NULL, SND_FILENAME);

Może spróbuj w ten sposób?

0

Niestety tylko ten dźwięk windowsa :/

0

Spróbuj zaincludować jeszcze:

#include "mmsystem.h"

Spróbuj też z takim kodem:

PlaySound((LPCSTR) "C:\\(...)01.wav", NULL, SND_FILENAME | SND_ASYNC);

za kropki wstawisz scieżkę bezwzględną.

0

C:...\Wiesielec\test.cpp||In function 'int main()':|
C:...\Wiesielec\test.cpp|11|error: incomplete universal character name \U|
C:...\Wiesielec\test.cpp|11|warning: unknown escape sequence: '\X' [enabled by default]|
C:...\Wiesielec\test.cpp|11|warning: unknown escape sequence: '\D' [enabled by default]|
C:...\Wiesielec\test.cpp|11|warning: unknown escape sequence: '\W' [enabled by default]|
== Build finished: 1 errors, 3 warnings (0 minutes, 0 seconds) ===

0

Na tej stronie http://msdn.microsoft.com/en-us/library/windows/desktop/dd743680(v=vs.85).aspx są jeszcze na dole posty użytkowników, jeden pisze tak:

  1. Include the following header files in this order:

#include "windows.h"

#include "mmsystem.h"

  1. follow the following steps to add winmm.lib to the linker (assuming Visual Studio 2010):

a. Right click the project name in the Solution Explorer and select "Property".

b. On the left pane of the Property window, select "Linker" and then "Input"

c. On the right pane, type winmm.lib in the "Additional Dependencies" row.

d. Click "Apply" and then "OK".

0

Mam to wszystko tylko winmm dałem w .dll a nie w .lib. Czy jest jakaś różnica? Wpisałem ścieżkę i takie błędy wyskoczyły jak na górze.

0

Proponuję DirectShow. Przykład podawałem nie raz. Znacznie to lepsze niż PlaySound które nie działa i obsługuje tylko wave'y.

1 użytkowników online, w tym zalogowanych: 0, gości: 1