Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: WinAPI ::  [Gelöst] WAV/MP3 gleichzeitig wiedergeben     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
pHySiX_RuLeZ
Mitglied

Benutzerprofil
Anmeldungsdatum: 09.12.2009
Beiträge: 17
Beitrag pHySiX_RuLeZ Mitglied 23:24:31 11.12.2009   Titel:   [Gelöst] WAV/MP3 gleichzeitig wiedergeben            Zitieren

Hallo allerseits!

Ich hoffe der Beitrag ist hier richtig aufgehoben; bin noch blutiger C++ Anfänger (leicht oberhalb des Hello-World-Stadiums) und habe ein mittelschweres Problem:

Benötigt wird eine Art "Nippelboard" für WAV Sounds (besser, aber aufwendiger wäre MP3), welches man über die Tastatur bedient. Ich habe bereits ein Programm geschrieben, das mittels PlaySound genau die Aufgabe erfüllt, allerdings läuft alles über einen Kanal und beendet ggf. den vorhergehenden Sound. Teilweise ist dieses Verhalten erwünscht, es gibt aber ein Problem mit der Hintergrundmusik. Womit wir beim eigentlichen Problem wären: ich benötige exakt 2 Tonspuren: eine für die Musik und eine für sonstige Effekte. Ließe sich zwar über 2 Programminstanzen machen, ist aber unkomfortabel.

Forum-Suche ergab folgendes
http://www.c-plusplus.de/forum/viewtopic-var-t-is-247918.html
http://www.c-plusplus.de/forum/viewtopic-var-t-is-252914.html
...hilft mir aber nicht so richtig weiter.

Ich brauche möglichst schnell eine möglichst simple Lösung (zweiter Thread?) und bin für jede Hilfe dankbar!


Zuletzt bearbeitet von pHySiX_RuLeZ am 14:23:33 08.01.2010, insgesamt 1-mal bearbeitet
DarkShadow44
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.06.2009
Beiträge: 332
Beitrag DarkShadow44 Mitglied 19:47:47 13.12.2009   Titel:              Zitieren

C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char data[100];

sprintf_s(data,"open %s","c:/test.mp3");
mciSendString(data, NULL, 0, NULL);  //Öffnen

sprintf_s(data,"play %s from 0","c:/test.mp3");
mciSendString(data, NULL, 0, NULL); //Play

// Hier natürlich ne Schleife oder Warten, sonst hört man nichts



sprintf_s(data,"stop %s ","c:/test.mp3");
mciSendString(data, NULL, 0, NULL); //Stop (nur nötig, wenn manuell gestoppt wird)

mciSendString("close all ", NULL, 0, NULL); //Alle schließen
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char data[100];

sprintf_s(data,"open %s","c:/test.mp3");
mciSendString(data, NULL, 0, NULL); //Öffnen

sprintf_s(data,"play %s from 0","c:/test.mp3");
mciSendString(data, NULL, 0, NULL); //Play

// Hier natürlich ne Schleife oder Warten, sonst hört man nichts



sprintf_s(data,"stop %s ","c:/test.mp3");
mciSendString(data, NULL, 0, NULL); //Stop (nur nötig, wenn manuell gestoppt wird)

mciSendString("close all ", NULL, 0, NULL); //Alle schließen
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
char data[100];

sprintf_s(data,"open %s","c:/test.mp3");
mciSendString(data, NULL, 0, NULL);  //Öffnen

sprintf_s(data,"play %s from 0","c:/test.mp3");
mciSendString(data, NULL, 0, NULL); //Play

// Hier natürlich ne Schleife oder Warten, sonst hört man nichts



sprintf_s(data,"stop %s ","c:/test.mp3");
mciSendString(data, NULL, 0, NULL); //Stop (nur nötig, wenn manuell gestoppt wird)

mciSendString("close all ", NULL, 0, NULL); //Alle schließen


Das Ganze für jede WAV/MP3.

So geht's synchron :cool:


Zuletzt bearbeitet von DarkShadow44 am 19:48:19 13.12.2009, insgesamt 1-mal bearbeitet
Jupp Jonson
Unregistrierter




Beitrag Jupp Jonson Unregistrierter 11:37:07 11.01.2011   Titel:   Also ich hab da ein Problem mit mciSendString            Zitieren

Also ich hab da folgendes Problem ich benutze Visual Studio 2010 und hier ist erstmal mein Quellcode:
#include "stdafx.h"
#include <windows.h>
#include "mmsystem.h"

int main()
{
[DllImport("winmm.dll")]
private static extern int mciSendString(string cmd, StringBuilder ret, int retLen, IntPtr hwnd);
mciSendString("open Laser.wav", NULL, 0, NULL);
mciSendString("play Laser.wav wait", NULL, 0, NULL);
mciSendString("close Laser.wav", NULL, 0, NULL);
}


und ich krieg folgende Fehlermeldung:

Fehler 1 error C2337: "DllImport": Attribut wurde nicht gefunden. c:\users\jonathan\documents\visual studio 2010\projects\mci-test\mci-test\mci-test.cpp 13
Fehler 2 error C2143: Syntaxfehler: Es fehlt ';' vor 'private' c:\users\jonathan\documents\visual studio 2010\projects\mci-test\mci-test\mci-test.cpp 13
Fehler 3 error C2159: Mehr als eine Speicherklasse angegeben c:\users\jonathan\documents\visual studio 2010\projects\mci-test\mci-test\mci-test.cpp 13
Fehler 4 error C2664: 'mciSendStringW': Konvertierung des Parameters 1 von 'const char [15]' in 'LPCWSTR' nicht möglich c:\users\jonathan\documents\visual studio 2010\projects\mci-test\mci-test\mci-test.cpp 15
Fehler 5 error C2664: 'mciSendStringW': Konvertierung des Parameters 1 von 'const char [20]' in 'LPCWSTR' nicht möglich c:\users\jonathan\documents\visual studio 2010\projects\mci-test\mci-test\mci-test.cpp 16
Fehler 6 error C2664: 'mciSendStringW': Konvertierung des Parameters 1 von 'const char [16]' in 'LPCWSTR' nicht möglich c:\users\jonathan\documents\visual studio 2010\projects\mci-test\mci-test\mci-test.cpp 17


was kann ich machen woran liegts?
C++!=Java
Unregistrierter




Beitrag C++!=Java Unregistrierter 11:52:45 11.01.2011   Titel:              Zitieren

Du solltest dich erst einmal in die Grundlagen der C++-Programmierung einarbeiten.

Welchen Sinn die Deklaration von mciSendString auch noch _innerhalb_ von main macht (nämlich keinen, außer dass dies ein Syntaxfehler ist) sollte dir erst einmal klar werden.

Außerdem wird niemals gegen die Dlls, sondern gegen die korrespondierenden Lib-Dateien gelinkt, zu allem Überfluss ist dein Versuch, was der Compiler zu Recht moniert, auch noch falsch.
Die Lib, die eingebunden werden muss, heißt Winmm.lib. Also entweder in den Projekteinstellungen->Linker->Input den Dateinamen hinzufügen oder ein passendes #pragma in den Code schreiben (ich persönlich würde Ersteres bevorzugen).
C/C++ Forum :: WinAPI ::  [Gelöst] WAV/MP3 gleichzeitig wiedergeben   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.