ďťż

Ładny brzuch

Chodzi mi o coś bardziej rozbudowanego niż funkcja PlaySound w Win, a prostszego od BASS (Bez pierdół niepotrzebnych.).
Głównie chodzi mi o możliwosć odtworzenia kilku dźwięków jednocześnie. Obsługiwany format to najlepiej WAV, choć może być inny.
Pytam się was bo samemu trudno jest dokonać odpowiedniego wyboru.



może DirectSound ? albo to coś co w SDL'u jest

Moze Audiere?

Audiere: Ściagnałem devpaka dla Dev C++, napisałem program, kompilator skompilowal bez bledow. Odpalam, brak ilustam bibiliotek. [ciach!], wszystkie pościagałem odpalam. Project1.exe wykonał nieprawidłową operację. [ciach!] patrze na raport Biblioteka Audiere.dll. || Z tym sobie juz poradziłem. Mam inny problem : Jak robię wszystko tak jak jest w tutku to slychac dzwiek ale przez ulamek sekundy. Jak to naprawic??
PS: Ztym też se poradziłem i mam inny problem. Borland BCB 6 nie lubi tej biblioteki zbytnio, ponieważ po dodaniu jej za pomocą Add to project jest błąd: [Linker Error] 'D:\SAMPLER\BCB\AUDIERE\LIB\AUDIERE.LIB' contains invalid OMF record, type 0x21 (possibly COFF) || Z tym też sobie poradziłem (chyba)
Ale teraz mam taki błąd:
Klikam sobie w przycisk Button 1 i mam kod:
void __fastcall TForm1::Button1Click(TObject *Sender) { AudioDevicePtr device(OpenDevice()); OutputStreamPtr snd1(OpenSound(device, "1.wav", false)); snd1->setVolume(1.0); snd1->Play(); }
Działa, jendak przy dłuższym jego używaniu zapcha się ram próbkami.

Moja główa wymyśliła takie cus.
void __fastcall TForm1::FormCreate(TObject *Sender) { AudioDevicePtr device(OpenDevice()); OutputStreamPtr snd1(OpenSound(device, "1.wav", false)); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { snd1->setVolume(1.0); snd1->Play(); }
Nie zapcha sie, jednak kompilator "nie widzi obiektu snd1" w Button1Click
Wie ktoś jak temu zaradzic??

Z tym se też poradziłem, ale kolejny błąd:
//--------------------------------------------------------------------------- #include <vcl.h> #include "audiere/include/audiere.h" #pragma hdrstop using namespace audiere; #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; AudioDevicePtr device(OpenDevice()); OutputStreamPtr snd1(OpenSound(device, "1.wav", true)); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { snd1->play(); //Tu jest mój błąd } //---------------------------------------------------------------------------

I po kliknięciu w Button 1 jest coś takiego:
Project Projec1.exe raised exepcion at EAccessViolation with message 'AccessViolation at adress 00401E52 in module Project1.exe at adress 00000000'
Zaczynają mnie te błędy irytować. Wiem co ten bład oznacza, ale nie wiem co jest jego przyczyna. Pomozcie.
Użytkownik retsuz PSC dla kumpli Czarny edytował ten post 09 luty 2008, 14:21


Nie chce mi się uczyć Audiere żeby sprawdzić o co chodzi, więc ja tak może nie na temat. Jak sobie nie poradzisz z tymi bugami to polecam bibliotekę OpenAL. Jest to potężna biblioteka, a dzięki użyciu biblioteki pomocniczej alut jest też banalna w obsłudze. W tydzień napisałem cały moduł dźwięku 3d wraz z menedżerem dźwięków i źródeł,

#include <iostream> #include <stdlib.h> #include <string.h> #include <conio.h> #include "bass.h" using namespace std; HSTREAM hMP3; // uchwyt strumienia DWORD dwStreamLen; DWORD dwStreamCurrentPos; float fSeconds; float fSecondsTotal; BASS_Init(-1, 22050, 0, 0); BASS_Start(); hMP3 = BASS_StreamCreateFile(false, "1.wav" , 0, 0, BASS_MP3_SETPOS); int main() { }

Wszystko wg tutoriala a jednak sa bledy

16 C:\Documents and Settings\Piotrek\Pulpit\bass23\retpad\main.cpp expected constructor, destructor, or type conversion before '(' token 16 C:\Documents and Settings\Piotrek\Pulpit\bass23\retpad\main.cpp expected `,' or `;' before '(' token 17 C:\Documents and Settings\Piotrek\Pulpit\bass23\retpad\main.cpp expected constructor, destructor, or type conversion before ';' token 18 C:\Documents and Settings\Piotrek\Pulpit\bass23\retpad\main.cpp expected constructor, destructor, or type conversion before '=' token 18 C:\Documents and Settings\Piotrek\Pulpit\bass23\retpad\main.cpp expected `,' or `;' before '=' token

A czy przypadkiem tego fragmentu:
BASS_Init(-1, 22050, 0, 0); BASS_Start(); hMP3 = BASS_StreamCreateFile(false, "1.wav" , 0, 0, BASS_MP3_SETPOS);

nie powinno być wewnątrz funkcji main?

akurat w tym przypadku nie moze tak byc, poniewaz projekt mojej aplikacji zawiera idee powracania to main. Gdybym tak zrobil to co obieg funkcja inicjalizowalaby dziwiek i ladowalaby muzyke. A potem tekst typu 'pamiec nie moze byc written'
#include <iostream> #include <stdlib.h> #include <string.h> #include <conio.h> #include "bass.h" using namespace std; //------------------------------------------------------------------------------ HSTREAM i1; HSTREAM i2; // uchwyt strumienia DWORD dwStreamLen; DWORD dwStreamCurrentPos; float fSeconds; float fSecondsTotal; //------------------------------------------------------------------------------ void inicjalizacja() { BASS_Init(-1, 22050, 0, 0, 0); BASS_Start(); BASS_SetVolume(100); i1 = BASS_StreamCreateFile(false, "1.wav" , 0, 0, BASS_MP3_SETPOS); i2 = BASS_StreamCreateFile(false, "2.wav" , 0, 0, BASS_MP3_SETPOS); } //------------------------------------------------------------------------------ int i; //------------------------------------------------------------------------------ void kontrola() { char znak; znak = getch(); if(znak == '1') { BASS_ChannelPlay(i1, false); kontrola(); } if(znak == '2') { BASS_ChannelPlay(i2, false); kontrola(); } else { kontrola(); } //------------------------------------------------------------------------------ } int main() { inicjalizacja(); kontrola(); } //------------------------------------------------------------------------------
Tak se poradzilem. Xd nie zamykac jakbym jeszcze potrzebowal pomocy bede tu pisal.
XD Kolejny bug
xD znów ta romban konwersja bibliotek.
skonwertowalem bass.lib za pomocą coff2omf w borland/cbuilder6/lib i xD
Brak procedury wejscia w BASS.DLL
Użytkownik retsuz PSC dla kumpli Czarny edytował ten post 13 luty 2008, 19:16
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •