Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Ich brauche ein Tutorial (https://www.delphipraxis.net/44157-ich-brauche-ein-tutorial.html)

Luckie 19. Apr 2005 15:53

Re: Ich brauche ein Tutorial
 
Zitat:

Zitat von nikluetke
danke für das tutor, aber das kann ich auch noch.
mein problem ist folgendes: wenn ich eine musik datei öffne, dann soll sie in die TListBox. Dies funktionirt aber nicht, wie kriege ich dsa hin? Man soll die verschiedenen musik stücke naher auch auswählen können und abspielen können.

Also das hat ja nun gar nichts mit der Bass.dll zu tun.

Delphi-Quellcode:
if OpenDialog1.Execute then
  Listbox1.Items.Add(OpenDialog1.Filename);

nikluetke 20. Apr 2005 18:38

Re: Ich brauche ein Tutorial
 
guck mam, so habe ich es jetzt gemacht :
Delphi-Quellcode:
unit nik;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Bass, StdCtrls, ExtCtrls, Buttons, Menus;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ListBox1: TListBox;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    mods: array[0..128] of HMUSIC;
    modc: Integer;
    sams: array[0..128] of HSAMPLE;
    samc: Integer;
    strs: array[0..128] of HSTREAM;
    strc: Integer;
  public
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
  Listbox1.Items.Add(OpenDialog1.Filename);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
   i: Integer;
begin
   i := ListBox1.ItemIndex;
   // Play the stream (continuing from current position)
   if i >= 0 then
      if not BASS_ChannelPlay(strs[i], False) then
end;

end.
wenn ich jetzt eine datei aus der listbox auswähle spielt er die nicht ab warum???? bzw wie kann ich amchen das er die abspielt?

TOC 22. Apr 2005 17:01

Re: Ich brauche ein Tutorial
 
Hi!

Ist das der ganze Code in Deiner Anwendung? Ich seh nit wie du die Bass.dll initialisierst!
Vielleicht liegts daran.

Füge doch mal folgendes in Dein Programm ein:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Wenn die Bass.dll nicht initalisiert werden konnte dann...
  If not Bass_Init(1,44100,0,Form1.Handle,Nil) then Begin
    // Fehlermeldung ausgeben
    ...
    ...
  End;
end;
Und außerdem, wo öffnest Du den den Stream und definierst strs[N] ?
In Deinem Button1Click schreibst Du ja NUR den Namen der Datei in die ListBox- sonst nix!
Bevor du Bass_ChannelPlay aufrufst mußt Du den Stream öffnen!

Probier mal folgendes:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
Var
  HS:HStream;
begin
  if OpenDialog1.Execute then Begin
    // Stream öffnen
    HS:=Bass_StreamCreateFile(False,PChar(OpenDialog1.FileName),0,0,0);
    // Wenn es geklappt hat dann...
    If HS<>0 then Begin
      // Pfad und Name in ListBox schreiben
      Listbox1.Items.Add(OpenDialog1.Filename);
      // Händel des Streams merken
      strs[ListBox1.Items.Count-1]:=HS;
    End;
  End;
end;
Du könntest aber auch das Ereignis 'OnDoubleClick' der ListBox verwenden. Dann bräuchte der User nur doppelt auf einen Eintrag klicken um eine Datei abzuspielen.

Grüße von TOC!

nikluetke 22. Apr 2005 20:34

Re: Ich brauche ein Tutorial
 
TOC!!!! Groooooooßen dankeschööööön.
echt danke es funktioniert.
ich kann mich nicht mehr als bedanken :) :lol:

jetzt noch eine frage :oops:
wie kann ich das so machen das er die nacheinander abspielt, also das man nicht immer paly drücken muss?

danke

LG NiK!!!!!!!

mimi 23. Apr 2005 14:18

Re: Ich brauche ein Tutorial
 
@nikluetke
das kannst du abschalten indem du einen start parameter bei der init funktion hinzufügst.

Das geht bei meiner units gans einfach:
du hast eine playliste vom typ TStringList z.b. und jetzt muss du nur noch ein ereginis:
OnNewSound mit einer porcedure bestetzen und Sound.NewSound in einen Timer aufrufe und fertig.
und in dieser procedure kannst du dann bestimmen welche datei als nächste kommt.
Ich vermute mal du hast eine ListBox als playliste dann kannst du z.b. es so machen:
Delphi-Quellcode:
procedure Tform1.ChangeSoundFile;
begin
  if ListBox1.ItemIndex+1 <= ListBox1.items.Count-1 then begin
    ListBox1.ItemIndex:=ListBox1.ItemIndex+1 
    ListBox1Click(sender); // musst du noch anpassen.
  end;
end;
Das wars schon.

nikluetke 23. Apr 2005 20:13

Re: Ich brauche ein Tutorial
 
das funktioniert nicht :(

mimi 23. Apr 2005 20:27

Re: Ich brauche ein Tutorial
 
Poste mal code....

TOC 24. Apr 2005 13:10

Re: Ich brauche ein Tutorial
 
Hi!

Zitat:

Zitat von nikluetke
TOC!!!! Groooooooßen dankeschööööön.
echt danke es funktioniert.
ich kann mich nicht mehr als bedanken :) :lol:

jetzt noch eine frage :oops:
wie kann ich das so machen das er die nacheinander abspielt, also das man nicht immer paly drücken muss?

Ein einfaches 'Danke' reicht völlig :drunken: !

Schick uns mal als Anhang Dein Programm.

Ich würde Dir empfehlen nach dem Öffnen des Streams noch einen Sync auf das Stream-Ende zu setzen.
Dann wird am Ende des Stückes automatisch die CallBack-Funktion 'SyncProc' aufgerufen, und diese Funktion kann dann das nächste Stück abspielen. Schau nun bitte doch mal in das Mini-Tutoriol hinein das ich Dir gepostet habe, da kannst Du nachlesen (im QuellCode) wie das mit den Syncs und der SyncProc funktioniert.

Grüße von TOC!

nikluetke 25. Apr 2005 17:37

Re: Ich brauche ein Tutorial
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier das Programm im Anhang

Cicaro 28. Apr 2005 09:55

Re: Ich brauche ein Tutorial
 
Was ist denn eigentlich das Problem ? :gruebel: Die GUI ?
Denn der TMediaPlayer besitzt ja alle nötigen Funktionen zum Abspielen von mp3s.
Wo ich bis jetzt meine Probleme hatte, ist die PlayList. Wie kann man denn Files aus dem Explorer in die ListBox übertragen ? Aber das ist ja 'ne andere Geschichte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz