Aktuelle Zeit: 29.03.2024, 15:55

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste
Autor Nachricht
BeitragVerfasst: 26.05.2011, 18:58 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
hallo,
wie muss ich folgenden quelltext modifizieren, damit ich mehrere sounds hinereinander mit einer kleinen pause zwischen drin abspielen kann?

Code:
#include <iostream>
#include <irrKlang.h>

using namespace irrklang;

int main(int argc, const char** argv)
{
   ISoundEngine* engine = createIrrKlangDevice(); 
   if (!engine)     
          return 0;   
   engine->play2D("bell.wav", true);
  char i = 0;
  std::cin >> i; 
  engine->drop();   return 0;
}

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 12:54 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
hat keiner eine idee?

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 15:08 
Offline

Registriert: 11.05.2011, 03:02
Beiträge: 37
Wohnort: Leck
Die einfachste Lösung wäre nen Thread.
Ablauf:
play()
sleep(1)
play()

Mit IrrKlang habe ich mich nicht beschäftigt... (Kollision mit der Lizenz ^^)
Aber denke IrrKlang wird sicher auch in Threads funktionieren.
Du müsstest nur die Steuerung des Threads hinzufügen... damit dieser pausiert oder ähnliches werden kann.

_________________
Signaturen sollten zur Sicherstellung der persönlichen Identität dienen....
Aber als Werbeträger sind sie einfach besser geeignet cO
---
Irrlicht Engine Version 1.8.0-alpha (OGL)


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 15:32 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
tja, ich bin eben noch anfänger... deswegen: wie füge ich threads hinzu?

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 15:41 
Offline

Registriert: 11.05.2011, 03:02
Beiträge: 37
Wohnort: Leck
Entweder per Winapi (Da du ja Windows nutzt) MSDN Threads
Oder Pthreads (die win Version ...) Posix Threads Win32
Oder die, die ich auch nutze aber etwas schwerer zu handhaben sind: boost::thread

Für Neulinge würde ich Boost nicht empfehlen... sehr schwer verdaulicher Stoff...
Threads alleine sind jedoch einfach...

Hier z.B.
Code:
boost::thread ClientThread( boost::bind( &fleetclient::wait_ident, this ) );

Genaueres dazu, kann man oben im boost link lesen...

_________________
Signaturen sollten zur Sicherstellung der persönlichen Identität dienen....
Aber als Werbeträger sind sie einfach besser geeignet cO
---
Irrlicht Engine Version 1.8.0-alpha (OGL)


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 16:10 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
check ich nicht... ich habe auch eher gehofft, dass irrklang da eigene methoden für sowas hat. anders kann ich mirs nicht vorstellen, sowas elementares muss das doch haben! weil sounds abspielen allein... ist dann für ein tool, was für leute, die das in einem kommerziellen programm nutzen, richtig geld kostet echt ein bisschen zu wenig...


zu dem msdn-tutorial eine frage: gibts irgendwo eine seite wo der gebrauch von solchen apis erklärt wird? ich check da nämlich garnix, da werden mir irgendwelche tabellen vorgesetzt, wo ich jetzt irgendwas rauslesen soll!?! das problem ist nur, dass auch irrlicht sowas hat, und auch das würde ich gerne checken :/

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 16:28 
Offline

Registriert: 11.05.2011, 03:02
Beiträge: 37
Wohnort: Leck
Betreffs der Threads...
Einfach in Google: Winapi Threads
eingeben... dann bekommst du z.B. sowas http://www.devmentor.ch/teaching/additi ... hreads.pdf

Betreffs Irrklang... Kommerzielle Produkte nutzen ebenfalls Threads, da vieles in verschiedene Bereiche ausgelagert werden müssen.
z.B. der IO Bereich an Files, oder Irrlicht das Device, Netzwerk Socket Lesen .... all die Dinge können nicht in einer einzigen laufen.
Daher die verwendung mehrere, da sie sonst blockieren würden.
Abgesehen von Shared_ptr...aber das geht zu weit in die Materie und löst das Problem ebenfalls nicht.

Im kurzen Überflug habe ich nun nicht's gesehen betreffs Irrklang...
Wie gesagt... die Lizenz ist nicht brauchbar für mein Vorhaben..daher nutze ich OpenAL direkt.

_________________
Signaturen sollten zur Sicherstellung der persönlichen Identität dienen....
Aber als Werbeträger sind sie einfach besser geeignet cO
---
Irrlicht Engine Version 1.8.0-alpha (OGL)


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 16:33 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
OpenAL, ist das besser als irrklang, bzw. "performancefreundlich"(ruckelts)? weil warum irrklang lernen, wenns dann doch bessere soundengine (oder wie man sowas nennt) gibt.

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 17:07 
Offline

Registriert: 11.05.2011, 03:02
Beiträge: 37
Wohnort: Leck
Besser ist in dem falle relativ...
Irrklang ist angepasst auf Irrlicht, nutzt ähnliche Variablen und Argumente...

OpenAL ist das... was hinter Irrklang läuft. Irrklang ist daher nur eine Art... Übersetzer für dich.
Wenn dein Spiel nicht "kommerziell" werden soll, bleibe lieber bei Irrklang und schaue dir später ggf. OpenAL an.
Dannach musst du selbst entscheiden, was dir eher liegt.

Da Irrklang für Kommerzielle Dinge nur käuflich ist, ich aber z.Z. keine Mittel dazu habe... nutze ich die mir gegebenen Dinge...
Die per Lizenz es erlauben frei zu nutzen gegen Nennung im Produkt.

Ok, jetzt ist es noch kein Produkt...aber ich schaue lieber in die Zukunft... da wird es irgendwann soweit sein.
Lieber jetzt die Mehrarbeit... als später wenn es zu komplex wurde...

Was besser ist ?
Ich schätze Irrklang wird bei FPS Zahlen besser abschneiden als OpenaL
Da Irrklang direkt angepasst wurde.

In erweiterten Dingen... wird OpenAL wohl eher besser abschneiden, da dieses in eigene Klassen gebaut werden muss
Nachteil... man muss eben auch wirklich alles selber bauen ;) bzw.. das meiste davon....

Entscheide du, was für dich besser wäre....
Google hat viele OpenAL Tutorials....aber schätze du wirst mit Irrklang wesentlich bessere erfolge erzielen.... vor allem schnellere...

_________________
Signaturen sollten zur Sicherstellung der persönlichen Identität dienen....
Aber als Werbeträger sind sie einfach besser geeignet cO
---
Irrlicht Engine Version 1.8.0-alpha (OGL)


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 17:41 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
naja, ich hab mit irrklang und irrlicht mal ein wenig rumprobiert...also entweder ich hab was falsch gemacht oder irrklang "crashed" schon eine ziemlich einfache anwendung...

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 17:49 
Offline

Registriert: 11.05.2011, 03:02
Beiträge: 37
Wohnort: Leck
Inwiefern Crasht es ?
Wie zeichnet es sich aus ?;)

Irrklang an sich ist stabil.....
Es kommt immer auf das Programm drauf an...

_________________
Signaturen sollten zur Sicherstellung der persönlichen Identität dienen....
Aber als Werbeträger sind sie einfach besser geeignet cO
---
Irrlicht Engine Version 1.8.0-alpha (OGL)


Nach oben
 Profil  
 
BeitragVerfasst: 27.05.2011, 18:23 
Offline

Registriert: 25.02.2011, 15:22
Beiträge: 179
ich wollte einen sound abspielen und dann ein irrlicht-fenster öffnen.

es wird zwar am anfang der sound abgespielt, bei der erstellung des fensters scheint sich aber mein pc aufhängen. (der "rahmen" des fensters kommt, bleibt aber leer.) dann scheint das programm zu laden, oder zu hängen.´

der (fehlerhafte) quellcode:

Code:
#include <irrlicht.h>
#include <irrklang.h>


using namespace irr;
using namespace video;
using namespace irrklang;

int main(int argc, const char** argv)
{
   ISoundEngine* engine = createIrrKlangDevice(); 
   if (!engine)     
          return 0;   
   engine->play2D("bell.wav", true);

  char i = 0;
  std::cin >> i;

  engine->drop();
 
  IrrlichtDevice *device =
        createDevice( video::EDT_OPENGL, dimension2d<u32>(640, 480), 32,
                        false, false, false, 0);

        if (!device)
                return 1;
        device->setWindowCaption(L"Hello World mit Irrlicht !");

       
        IVideoDriver* driver = device->getVideoDriver();     

       
        while(device->run())
        {         
               
                driver->beginScene(true, true, SColor(3,150,203,255));

               

               
                driver->endScene();
        }
       
        device->drop();

       
        return 0;

 
}

_________________
Irrlicht - from Noob to Pro
Bild


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite 1, 2, 3  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de