dawiddawido Napisano Luty 8, 2008 Zgłoś Share Napisano Luty 8, 2008 Witam Piszę prosty odtwarzacz mp3, z użyciem biblioteki bass.dll. Wyświetlam czas, i używam trackbara, do pokazywania ile piosenki już mineło (tak jak np. windows media player). Problem pojawia się gdy chcę użyć tego trackbara do ustawinia od którego ma być momentu odtwarzana piosenka. Gdy przesuwam suwak, to piosenka się ma w to miejsce przesunąć. Używam timera do przesuwania pozycji trackbara. I teraz pytanie jak mogę za pomocą trackbara przesuwać piosenke? Jakie zdarzenie zastosować do tego trackbara?? Próbowałem na onchange ale wtedy piosenka się zacina na początku i nie rusza dalej Prosze o pomoc Pozdrawiam Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Luty 9, 2008 Zgłoś Share Napisano Luty 9, 2008 Hmm zdarzenie OnChange powinno być dobre jeśli chodzi o track bar wina pewnie leży w kodzie z bass-a, którym przesuwasz piosenkę Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
dawiddawido Napisano Luty 9, 2008 Autor Zgłoś Share Napisano Luty 9, 2008 Widze że się nierozumiemy więc wrzucę źródło żeby było łatwiej Wink KOD void __fastcall TForm1::Otwrz1Click(TObject *Sender) { OpenDialog1->Execute(); if (OpenDialog1->FileName == "") return; BASS_Init(1, 44100,0, Handle,NULL); Muza1 = BASS_StreamCreateFile(false,OpenDialog1->FileName.c_str(),0,0,0); BASS_ChannelSetFlags(Muza1,BASS_STREAM_AUTOFREE); BASS_ChannelPlay(Muza1,false); QWORD len=BASS_ChannelGetLength(Muza1); // length in bytes float time=BASS_ChannelBytes2Seconds(Muza1,len); // the time length time = floor(time); int tmp = time; Timer1->Enabled = true; TrackBar2->Position = 0; TrackBar2->Max = tmp; Dlugosc = tmp; } //--------------------------------------------------------------------------- void __fastcall TForm1::Timer1Timer(TObject *Sender) { TrackBar2->Position++; ////// TU AKTUALIZUJE POZYCJę TRACKBARA if (Dlugosc == TrackBar2->Position) Timer1->Enabled = false; } //--------------------------------------------------------------------------- void __fastcall TForm1::TrackBar2Change(TObject *Sender) { BASS_ChannelSetPosition(Muza1,TrackBar2->Position); // TUTAJ ZMIENIAM POZYCJE PIOSENKI } //----------------------------------------------------------------------- Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Luty 9, 2008 Zgłoś Share Napisano Luty 9, 2008 Może ta komenda BASS_ChannelSetPosition jako parametr nie przyjmuje ile sekund, a ile bajtów? Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
5corpio Napisano Luty 9, 2008 Zgłoś Share Napisano Luty 9, 2008 Force masz chyba rację bo na necie znalazłem taki opis jej: BASS_ChannelSetPosition(channel,pozycja_w_bajtach); Ot taka mini-strona moja po godzinach http://www.wnetrzekuchni.pl Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.