AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Trackbar/Zeit

Ein Thema von Nils_13 · begonnen am 10. Dez 2004 · letzter Beitrag vom 28. Dez 2004
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Trackbar/Zeit

  Alt 10. Dez 2004, 16:57
Hi,

1. Wie berechne ich die Zeit eines Liedes (BASS.dll)
2. Wie stelle ich das in der Trackbar da?
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#2

Re: Trackbar/Zeit

  Alt 10. Dez 2004, 18:05
Mit dem MediaPlayer wär es mir ein leichtes eine TrackBar zu proggen, der MediaPlayer ist aber schlechter als die BASS.dll.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Trackbar/Zeit

  Alt 10. Dez 2004, 18:13
Nils, bitte benutze in Zukunft unbedingt die Edit-Funktion, wenn Du Deinem Beitrag etwas hinzufügen möchtest. Dies hier ist nichts anderes als indirektes Pushen des Beitrages.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#4

Re: Trackbar/Zeit

  Alt 10. Dez 2004, 19:40
Hi,
klar Chef!

  Mit Zitat antworten Zitat
Wishmaster

Registriert seit: 14. Sep 2002
Ort: Steinbach, MB, Canada
301 Beiträge
 
Delphi XE2 Architect
 
#5

Re: Trackbar/Zeit

  Alt 11. Dez 2004, 02:29
Code:
{---------------------------------  SongPos ----------------------------------}

procedure TAudioEngine.Set_SongPos(SongPos : Integer);
begin
 if WriteToFile Then
   Exit;
    SongPos := BASS_ChannelSeconds2Bytes(Channel, SongPos / 1000);
    BASS_ChannelSetPosition(Channel, trunc(SongPos));
end;

function TAudioEngine.Get_SongPos : Integer;
var SongPos : QWORD;
    MilliSec : Integer;
    FloatPos : FLOAT;
begin
    SongPos := BASS_ChannelGetPosition(Channel);
    FloatPos:= BASS_ChannelBytes2Seconds(Channel, SongPos);
    MilliSec:= Trunc(1000 * FloatPos);
 if MilliSec < 0 then
    MilliSec:= 0;
 if (PlayerState = ENGINE_STOP) or (PlayerState = ENGINE_SONG_END) then
     Result := 0
   else
 Result := MilliSec;
end;
//


Code:
var Scroling : boolean;


procedure TMain_Form.Slider_TimerTimer(Sender: TObject);
var len : integer;
begin
 with AudioPlayer do
  begin
     Len:= Get_SongLen;
  if Len <= 0 then
   begin
    Slider.Position:= 0;
    exit;
  end;

  if Scroling = false then   // Slider
     Slider.Position:= trunc((Slider.MaxValue / Len) * Get_SongPos + 0.1);
   end;
end;

procedure TMain_Form.SliderMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  Scroling:= true;
end;

procedure TMain_Form.SliderMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  with AudioPlayer do
    begin
    Set_SongPos(Trunc(Get_SongLen *  slider.Position / Slider.MaxValue + 0.1));
    Scroling:= false;
  end
end;

//
Die Plugin’s findest du bei http://www.un4seen.com/

Code:
function TAudioEngine.Get_SongLength(FileName : String): Integer;
var Chn          : DWORD;
    Res, MilliSec : Integer;
    SongLength   : QWORD;
    FloatPos     : FLOAT;
    ext : string;
begin
     Ext:= UpperCase(ExtractFileExt(FileName));

       Chn := BASS_StreamCreateFile(FALSE, PChar(FileName), 0, 0, 0);
   if (EXT = '.WMA') or
      (EXT = '.WMV') or
      (EXT = '.ASF') then
       Chn:= BASS_WMA_StreamCreateFile(FALSE, PChar(FileName), 0, 0, 0);
   if (EXT = '.FLAC') then
       Chn:= BASS_FLAC_StreamCreateFile(FALSE, PChar(FileName), 0, 0, 0);
   if (EXT = '.MP4') or (EXT = '.M4A') then
       Chn:= BASS_MP4_StreamCreateFile(PChar(FileName), 0);
   if (EXT = '.AAC') then
      Chn:= BASS_AAC_StreamCreateFile(PChar(FileName), 0);
   if (EXT = '.CDA') then
       Chn:= BASS_CD_StreamCreateFile(PChar(FileName), 0);
   if (EXT = '.APE') then
      Chn:= BASS_APE_StreamCreateFile(PChar(FileName), 0);
   if (EXT = '.MPC') then
      Chn:= BASS_MPC_StreamCreateFile(PChar(FileName), 0);


  if Chn <> 0 then
     SongLength := BASS_StreamGetLength(Chn);
  if (Chn = 0) then
   begin
      Chn := BASS_MusicLoad(FALSE, PChar(FileName), 0, 0, 0, 0);
      SongLength := BASS_MusicGetLength(Chn, True);
    end;
  if (Chn <> 0) then
   begin
      FloatPos:= BASS_ChannelBytes2Seconds(Chn, SongLength);
      MilliSec:= Trunc(1000 * FloatPos);
   if MilliSec < 0 then
      MilliSec:= 0;
      Res:= MilliSec;
     end
   else
      Res := -1;
      BASS_StreamFree(Chn);
      BASS_MusicFree(Chn);
      result := res;
end;


var


function DurationMinSec(Secunden : string) : string;
var Min, Sec : integer;
    SecToTime : string;
begin
   Min:=  StrToInt(Secunden) div 60;
   Sec:=  StrToInt(Secunden) - Min * 60;
   SecToTime:= Format('%2d:%.2d', [Min, Sec]);
   result:= SecToTime;
end;


var Time : integer;

Time:= trunc(Audioplayer.Get_SongLength(Files.Strings[i]) / 1000);

label1.Caption:= DurationMinSec(inttostr(Time)));
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#6

Re: Trackbar/Zeit

  Alt 11. Dez 2004, 10:06
thx!!!

Wie heißt denn die Engine

  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Trackbar/Zeit

  Alt 11. Dez 2004, 10:48
Steht doch da: TAudioEngine.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#8

Re: Trackbar/Zeit

  Alt 11. Dez 2004, 11:56
Hi,

könnt ihr mir auf die Sprünge helfen? Ich kanns leider nicht finden
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Trackbar/Zeit

  Alt 11. Dez 2004, 12:08
Zitat:
Hi,

könnt ihr mir auf die Sprünge helfen? Ich kanns leider nicht finden
WAS findest du nicht? Ein stückchen Kuchen? Ein Ei?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Trackbar/Zeit

  Alt 11. Dez 2004, 12:12
Zitat von Spider:
WAS findest du nicht? Ein stückchen Kuchen? Ein Ei?
Die Engine, nehnme ich an.

Bass.dll
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 6  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz