Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Audiere - brak dźwięku

Ostatnio zmodyfikowano 2009-04-01 21:53
Autor Wiadomość
steckel
Temat założony przez niniejszego użytkownika
Audiere - brak dźwięku
» 2009-04-01 20:33:01
Witam! Mój program nie odtwarza dźwięku. O to funkcja, która powinna działać, gdyż kompilator nie wykazuje błędów.

C/C++
void dzwiek()
{
    AudioDevicePtr audiodevice( OpenDevice() );
    OutputStreamPtr graj( OpenSound( audiodevice, "dzwieki/muzyka.mp3", true ) );
    graj->setVolume( 1 );
    graj->setRepeat( true );
    graj->play();
}
P-5218
DejaVu
» 2009-04-01 21:30:25
Może za cicho dźwięk masz ustawiony?
P-5220
steckel
Temat założony przez niniejszego użytkownika
» 2009-04-01 21:33:45
To nie to, bo gdy odtwarzałem przez allegro to dźwięk był bardzo głośny.
P-5221
DejaVu
» 2009-04-01 21:40:40
http://forum.ddt.pl/?Tid=742

W powyższym temacie kolega pisał player'a z wykorzystaniem Audiere. O ile się nie mylę to jemu działało odtwarzanie dźwięku tak więc myślę, że możesz mieć mp3 uszkodzoną. Zobacz jak wygląda jego kod do odtwarzania muzyki :)

/edit:
C/C++
AudioDevicePtr audiodevice( OpenDevice() );
OutputStreamPtr graj( OpenSound( audiodevice, "nazwa pliku.mp3", true ) );
graj->setVolume( 0.5 );
graj->setRepeat( false );
graj->setPitchShift( 1 );
graj->play();

/edit2:

Widzę, że to jest funkcja u Ciebie. Dopisz na końcu pętlę:
while( graj->isPlaying() );
Jeśli będzie działało to oznaczać będzie tyle, że obiekt audiodevice z chwilą wyjścia z funkcji jest niszczony, a co za tym idzie dźwięk, który był przekazany do tego urządzenia przestaje być odgrywany.
P-5223
steckel
Temat założony przez niniejszego użytkownika
» 2009-04-01 21:53:06
Obiekt dźwiękowy rzeczywiście był niszczony po wyjściu z funkcji, a gdybym napisał
while( graj->isPlaying() );
to program chyba nie przeszedł by dalej. Problem rozwiązałem przenosząc pierwsze 2 linijki na początek kodu.
P-5225
« 1 »
  Strona 1 z 1