sound abspielen



  • ok danke, meinst du dann so ? :

    PlaySound(TEXT("D:\6. Semester\Projekt\Mein Projekt\Programmierung\TEST\TEST\tetris_melodie.wav"), NULL, SND_FILENAME && SND_ASYNC);

    mfg aqua5748



  • aqua5748 schrieb:

    "D:\6. Semester\Projekt\Mein Projekt\Programmierung\TEST\TEST\tetris_melodie.wav"

    geht gar nicht!

    "D:\\6. Semester\\Projekt\\Mein Projekt\\Programmierung\\TEST\\TEST\\tetris_melodie.wav"

    aqua5748 schrieb:

    SND_FILENAME && SND_ASYNC

    ebenfalls nicht richtig, sollte so aussehen (SND_FILENAME | SND_ASYNC)

    Ob der Funktionsaufruf richtig ist, kann ich dir nicht sagen, das andere ist mir beim überfliegen so aufgefallen.



  • PlaySound(filename, NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT);
    


  • des funktioniert so leider nicht!!!

    PlaySound(TEXT("D:\\6. Semester\\Projekt\\Mein Projekt\\Programmierung\\TEST\\TEST\\tetris_melodie.wav"), NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT);

    also so hab ichs probiert, so geht es nicht!!!

    habt ihr sonst noch eine idee?

    Danke
    mfg aqua5748



  • Was sagt denn der Rückgabewert?



  • also die funktion gibt eine 1 zurück !!!



  • kann das sein dass man diese Töne nur an bestimmten Ausgängen des PC's hört? den ich habe im Moment nur einen Kopfhörer über USB angeschlossen!


  • Mod

    PlaySound gibt nur auf dem Standardwiedergabe Gerät aus.
    Klick auf das Lautstäke Symbol in der Befehlsleiste mit der rechten Maus.
    Gehe auf Wiedergabegeräte und schau was als Standard definiert ist.



  • ok also das ist es auch nicht, die kopfhörer sind standart!!!



  • Versuch mal bei Projekt -> Eigenschaften -> Linker -> Befehlszeile
    die Winmm.lib bei weiteren Optionen hinzuzufügen....

    Und dann

    PlaySoundA("D:\\...",NULL,SND_ASYNC | SND_FILENAME);
    

    Ich hatte auch den Fehler aber dann hats geklappt^^



  • ja und wie kann ich die winmm.lib da einfügen ? habe dass doch schon mit der Befehlszeile:

    #pragma comment(lib,"winmm.lib")

    gemacht!



  • einfach winmm.lib reinschreiben ^^
    #pragma comment(lib, "winmm.lib") kommt nur an den Anfang deiner .cpp datei



  • oke, das hab ich auch probiert, ich habe das winmm.lib reingeschrieben und mein code lautet:

    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>

    #include <mmsystem.h>
    #pragma comment(lib,"winmm.lib")

    int main()
    {
    int i;
    i=0;
    i= PlaySoundA("D:\\6. Semester\\Projekt\\Mein Projekt\\Programmierung\\TEST\\TEST\\tetris_melodie.wav", NULL, SND_ASYNC | SND_FILENAME | SND_NODEFAULT);
    i=5+1;

    }

    aber es geht trotzdem nicht !!!



  • Ich hab ne winapi geschrieben mit grundgerüst und Hinterher bei der Callback Funktion PlaySoundA abspielen lassen

    Als ich dein Codeblock ausgeführt habe waren nur fehler da ...
    Versuch erstmal ein Normales WinApi Grundgerüst zu bauen und dann PlaySound einzubauen..

    Was willst du denn mit deinem Programm bezwecken?



  • oke, also ich habe ein Programm dass durchläuft und an einer bestimmten Stelle soll ein wave-sound abgespielt werden, aber das Programm soll dann während dem spiel weiterlaufen, und sobald man an einer bestimmten stelle im Programm ist, soll die wave-datei stoppen!



  • Da past am besten ne Library, z.B eine die Extra Audio Funktionen besitzt
    [url] http://www.fmod.org/index.php/download[/url]

    Die Anleitung zum Installieren und den Funktionen gibt es hier:
    http://www.gamedev.net/page/resources/_/reference/programming/sweet-snippets/a-quick-guide-to-fmod-r2098

    🤡



  • oke aber was soll ich den da runterladen, da gibt es so viele verschiedene fmod sachen, ich brauch ja eigentlich nur die header-datei und die lib oder ?

    Danke
    mfg aqua5748



  • Alternativ kannst Du es auch mit einem thread machen in dem Du es laufen lässt, und bei bedarf beendest.



  • sorry, aber so gut kenne ich mit jetzt noch nicht aus, das was du jetzt gerade geschrieben hast, damit kann ich leider nichts anfangen!!!

    Danke
    aqua5748



  • Wenn du willst kannst du es mal mit meiner PlaySound Klasse versuchen die ich vor Ewigkeiten geschrieben hab (eben noch einmal gestestet und funktioniert alles wunderbar):

    CSimpleSound.h

    #ifndef HEADER_CSIMPLESOUND_H
    #define HEADER_CSIMPLESOUND_H
    
    /*
    	Written by Listing 24.08.2011
    	Feel free to use for any purpose
    	There is no warranty of any kind
    */
    
    #include <windows.h>
    #pragma comment (lib, "Winmm.lib")
    
    enum PlaybackIdentifier
    {
    	PLAYBACK_START = 0,
    	PLAYBACK_STOP = 1
    };
    
    class CSimpleSound
    {
    public:
    	CSimpleSound(char * cFilename);
    	~CSimpleSound();
    
    	void Play(PlaybackIdentifier ePlay);
    
    protected:
    	char * GetFileName() {return m_Filename;}
    	static void PlaybackThread(CSimpleSound * cInstance);
    
    private:
    	char m_Filename[MAX_PATH];
    	HANDLE m_PlaybackThread;
    	PlaybackIdentifier m_Playback;
    };
    
    #endif
    

    CSimpleSound.cpp

    #include "CSimpleSound.h"
    
    CSimpleSound::CSimpleSound(char * cFilename)
    {
    	strncpy(m_Filename,cFilename,sizeof(m_Filename)/sizeof(char));
    	m_PlaybackThread = NULL;
    }
    
    CSimpleSound::~CSimpleSound()
    {
    	this->Play(PLAYBACK_STOP);
    }
    
    void CSimpleSound::Play(PlaybackIdentifier ePlay)
    {
    	m_Playback = ePlay;
    
    	if(m_PlaybackThread)
    	{
    		DWORD dwExitCode = NULL;
    		GetExitCodeThread(m_PlaybackThread,&dwExitCode);
    		if(dwExitCode != STILL_ACTIVE)
    		{
    			CloseHandle(m_PlaybackThread);
    			m_PlaybackThread = NULL;
    		}
    	}	
    
    	if(!m_PlaybackThread && ePlay==PLAYBACK_START)
    		m_PlaybackThread = CreateThread(0,0,reinterpret_cast<LPTHREAD_START_ROUTINE>(CSimpleSound::PlaybackThread),reinterpret_cast<LPVOID>(this),0,0);	
    }
    
    void CSimpleSound::PlaybackThread(CSimpleSound * cInstance)
    {
    	PlaySoundA(cInstance->GetFileName(), NULL,SND_ASYNC);
    
    	while(cInstance->m_Playback != PLAYBACK_STOP)
    		Sleep(5);
    
    	PlaySoundA(NULL, NULL, SND_PURGE);
    }
    

    Ein kleines, vollständiges Beispiel:

    #include "CSimpleSound.h"
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	CSimpleSound MeinSound("C:\\PumpAbDasBier.wav");
    	for(unsigned int i = 0; i < 2; ++i)
    	{
    		cout << "Wiedergabe wird gestartet!" << endl;
    		MeinSound.Play(PLAYBACK_START); //Starte die Wiedergabe
    		cout << "Bitte druecken Sie eine Taste um die Wiedergabe zu beenden!" << endl;
    		system("Pause");
    		MeinSound.Play(PLAYBACK_STOP);
    		system("Pause");
    	}
    
    	system("Pause");
    }
    

Anmelden zum Antworten