Fórum Playlist no delphi com dspack #240680
30/06/2004
0
Esta é a função RenderFile do componente FilterGraph, da DsPack.
function TFilterGraph.RenderFile(FileName: WideString): HRESULT;
begin
result := S_FALSE;
if assigned(FFilterGraph) then
begin
ControlEvents(ceFileRendering);
result := CheckDSError(FFilterGraph.RenderFile(PWideChar(FileName), nil));
if Succeeded(result) then ControlEvents(ceFileRendered);
end;
end;
O que eu preciso é fazer um playlist, da seguinte forma:
1º - Eu abro com OpenDialog, e os arquivos abertos com o OpenDialog
ficam guardados numa ListBox. Porque? Para que o cliente veja as
músicas que estão na reserva, para serem tocadas. Até aí tudo bem,
o problema começa, pq o FilterGraph, não lê os arquivos de dentro
da ListBox, somente do OpenDialog, talvez pelos formatos como eles estão guardados lá. É só isso que eu quero. Veja como funciona:
2º - O componente Opendialog, deixa o Path completo, e eu gostaria
que não aparecesse o Path, somente o nome da música ou clip.
procedure TForm1.btTocarClick(Sender: TObject);
begin
if OpenDialog1.Execute then begin
FilterGraph1.Active:=True;
filtergraph1.ClearGraph;
filtergraph1.RenderFile(Opendialog1.FileName);
filtergraph1.Play;
end;
end;
Assim funciona, mas eu somente abro uma música por vez. Agora como eu
quero, abaixo, não funciona:
procedure TForm1.btreservaClick(Sender: TObject);
begin
if OpenDialog1.Execute then begin
listbox1.Items.Add(opendialog1.FileName);
end;
end;
procedure TForm1.btTocarClick(Sender: TObject);
begin
FilterGraph1.Active:=True;
já coloquei:if ListBox1.ItemIndex = 0 then begin e nada e etc...
filtergraph1.ClearGraph;
filtergraph1.RenderFile(ListBox1.Já fiz de tudo aqui e nada);
filtergraph1.Play;
end;
Eu falo de listbox, mas pode ser qualquer componente que possa
listar uma relação de arquivos e etc...(TStringList ou similar) Já tentei com listview, e eu não consegui nada também.
Esta é a ajuda que eu tô pedindo a vc´s. Quem puder me ajudar, eu
fico grato. Com o TmediaPlayer do delphi, eu consigo, mas ele não
tem os recursos que eu preciso, como fullscreen, dimensionar o tamnho
dos clips como eu quiser e etc...
Disseram-me, é possivel com banco de dados, pois os componentes
dataware tem a propriedade FileName, requerida pelo RenderFile.
Eu fiz unma tabela com um campo chamado Path, onde eu gravo assim:
C:\Mp3\Track01.mp3. Também não consegui fazer gravar o MP3 numa tabela
e fazer a musica tocar apartir del., Tá braba!!!!
function TFilterGraph.RenderFile(FileName: WideString): HRESULT;
begin
result := S_FALSE;
if assigned(FFilterGraph) then
begin
ControlEvents(ceFileRendering);
result := CheckDSError(FFilterGraph.RenderFile(PWideChar(FileName), nil));
if Succeeded(result) then ControlEvents(ceFileRendered);
end;
end;
O que eu preciso é fazer um playlist, da seguinte forma:
1º - Eu abro com OpenDialog, e os arquivos abertos com o OpenDialog
ficam guardados numa ListBox. Porque? Para que o cliente veja as
músicas que estão na reserva, para serem tocadas. Até aí tudo bem,
o problema começa, pq o FilterGraph, não lê os arquivos de dentro
da ListBox, somente do OpenDialog, talvez pelos formatos como eles estão guardados lá. É só isso que eu quero. Veja como funciona:
2º - O componente Opendialog, deixa o Path completo, e eu gostaria
que não aparecesse o Path, somente o nome da música ou clip.
procedure TForm1.btTocarClick(Sender: TObject);
begin
if OpenDialog1.Execute then begin
FilterGraph1.Active:=True;
filtergraph1.ClearGraph;
filtergraph1.RenderFile(Opendialog1.FileName);
filtergraph1.Play;
end;
end;
Assim funciona, mas eu somente abro uma música por vez. Agora como eu
quero, abaixo, não funciona:
procedure TForm1.btreservaClick(Sender: TObject);
begin
if OpenDialog1.Execute then begin
listbox1.Items.Add(opendialog1.FileName);
end;
end;
procedure TForm1.btTocarClick(Sender: TObject);
begin
FilterGraph1.Active:=True;
já coloquei:if ListBox1.ItemIndex = 0 then begin e nada e etc...
filtergraph1.ClearGraph;
filtergraph1.RenderFile(ListBox1.Já fiz de tudo aqui e nada);
filtergraph1.Play;
end;
Eu falo de listbox, mas pode ser qualquer componente que possa
listar uma relação de arquivos e etc...(TStringList ou similar) Já tentei com listview, e eu não consegui nada também.
Esta é a ajuda que eu tô pedindo a vc´s. Quem puder me ajudar, eu
fico grato. Com o TmediaPlayer do delphi, eu consigo, mas ele não
tem os recursos que eu preciso, como fullscreen, dimensionar o tamnho
dos clips como eu quiser e etc...
Disseram-me, é possivel com banco de dados, pois os componentes
dataware tem a propriedade FileName, requerida pelo RenderFile.
Eu fiz unma tabela com um campo chamado Path, onde eu gravo assim:
C:\Mp3\Track01.mp3. Também não consegui fazer gravar o MP3 numa tabela
e fazer a musica tocar apartir del., Tá braba!!!!
Paulo
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)