全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3386
推到 Plurk!
推到 Facebook!

關於MediaPlayer 連續播放

尚未結案
w3top
一般會員


發表:12
回覆:13
積分:5
註冊:2002-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-15 21:01:55 IP:61.30.xxx.xxx 未訂閱
請教各問前輩,如何使用,TMediaPlayer 元件 來達到可以一次載入多首歌曲,連續播放。感謝各謝前輩,不吝賜教
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-15 21:21:05 IP:140.135.xxx.xxx 未訂閱
w3top您好:    
引言: 如何使用TMediaPlayer 元件 來達到可以一次載入多首歌曲,連續播放。
連續播放可參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18760 一次載入多首歌曲可參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26810 可能要請您自行改成Delphi的方式囉< > 順心< > 發表人 - taishyang 於 2003/04/15 21:24:16
w3top
一般會員


發表:12
回覆:13
積分:5
註冊:2002-04-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-15 22:41:23 IP:61.30.xxx.xxx 未訂閱
感謝 taishyang 前輩的回答,我看您所提供的文章,發現好像跟我用的不太一樣 我是用 system 元件盤上面的TMediaPlayer 元件,是不是跟文章中所述,包成OCX 的方式不同,好像找不到文章中所說的一些方法。 是不是我哪裡搞錯了,煩請前輩撥冗賜教 我使用 Opendialog 一次選了多首歌 指定給 MediaPlayer1.Filename 然後 MediaPlayer1.open MediaPlayer1.play 唱完一手之後就沒了,不知要如何處理,才能連續播放下去
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-16 01:01:10 IP:140.135.xxx.xxx 未訂閱
w3top您好:   不好意思,我的TMediaPlayer怪怪的不能用了.. 會有下面的錯誤訊息 < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=9001580&CC=201320"> 用 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18760 的方式是可以Repeat同一首歌 我想應該不能用Opendialog 一次選了多首歌然後指定給 MediaPlayer1.Filename這樣的方式吧... 暫時幫不上忙,不好意思 順心
w3top
一般會員


發表:12
回覆:13
積分:5
註冊:2002-04-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-16 15:07:08 IP:61.30.xxx.xxx 未訂閱
還是謝謝你,給我的指點,我還在努力的找尋答案中,是否有其他前輩可以幫幫我 謝謝大家
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-16 15:44:55 IP:202.39.xxx.xxx 未訂閱
看這一篇 Media Player With Playlist and repeat functions 是不是?
unit Unit1;
   
interface
   
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  FlatButton, FlatCustomControl, FlatPanel, FlatSystem, MPlayer, ExtCtrls,
  StdCtrls, FlatGraphicControl, FlatProgressBar, FlatCheckBox;
   
type
  TForm1 = class(TForm)
    FlatSystem1: TFlatSystem;
    PlayerPanel: TFlatPanel;
    PlayListPanel: TFlatPanel;
    PlayPause: TFlatButton;
    Stop: TFlatButton;
    Next: TFlatButton;
    Back: TFlatButton;
    OPen: TFlatButton;
    RepeatTimer: TTimer;
    Audio: TMediaPlayer;
    Playlist: TListBox;
    FlatProgressBar1: TFlatProgressBar;
    RepeatAudio: TFlatCheckBox;
    RandomTrack: TFlatCheckBox;
    OpenDialog1: TOpenDialog;
    Timer1: TTimer;
    procedure RepeatTimerTimer(Sender: TObject);
    procedure PlayPauseClick(Sender: TObject);
    procedure NextClick(Sender: TObject);
    procedure OPenClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    procedure PlayAudio;
    procedure RandomTracks;
    procedure BackTrack;
    procedure NextTrack;
    procedure UpdateProgress;
  public
    { Public declarations }
  end;
   
var
  Form1: TForm1;
  ss: String;
   
implementation
   
{$R *.DFM}
   
procedure TForm1.PlayAudio;
begin
  try
    ss := Playlist.Items.Strings[Form1.Playlist.ItemIndex];
    Audio.FileName := ss;
    Audio.Open;
    Audio.Play;
  except;
  end;
end;
   
function RandomInRange(intLow, intHi : integer): integer;
var itmp, iRS: integer;
begin
  Randomize();
  if intHi < intLow then
  begin
    itmp := intLow;
    intLow := intHi;
    intHi := itmp;
  end;
  iRS := intHi - intLow;
  Result := Trunc(iRS * Random   intLow);
end;
   
procedure TForm1.RandomTracks;
Var
  ItemCount:Integer;
begin
  ItemCount := Playlist.Items.Count;
  Playlist.itemindex := RandomInRange(0,ItemCount -1);
  ss := Playlist.Items.Strings[Playlist.ItemIndex];
  Audio.FileName := ss;
  Audio.Open;
  Audio.Play;
end;
   
procedure TForm1.NextTrack;
begin
  try
    ss := Playlist.Items.Strings[Playlist.ItemIndex 1];
    Playlist.itemindex := Playlist.itemindex   1;
    Audio.FileName := ss;
    Audio.Open;
    if Audio.FileName = '' then
      PlayAudio
    else
      Audio.Resume;
    if Playlist.itemindex = Playlist.Items.Count-1 then
      Playlist.itemindex := Playlist.ItemIndex   1
    else 
  except;
  end;
end;
   
procedure TForm1.BackTrack;
begin
  try
    ss := Playlist.Items.Strings[Playlist.ItemIndex-1];
    Playlist.ItemIndex := Playlist.ItemIndex - 1;
    Audio.FileName := ss;
    Audio.Open;
    if Audio.FileName = '' then
      PlayAudio
    else
      Audio.Resume;
    if Playlist.ItemIndex = Playlist.Items.Count-1 then
      Playlist.ItemIndex := Playlist.ItemIndex - 1
    else
  except;
  end;
end;
   
procedure TForm1.UpdateProgress;
begin
  try
    FlatProgressBar1.Max := Audio.Length;
    FlatProgressBar1.Position := Audio.Position;
    FlatProgressBar1.Update;
    Audio.Update;
  except;
  end;
end;
   
procedure TForm1.RepeatTimerTimer(Sender: TObject);
begin
  try
    if RepeatAudio.State = cbchecked then
      if RandomTrack.State = cbunchecked then
        RandomTracks
      else
        Audio.Play;
  except;
  end;
  RepeatTimer.Enabled := False;
end;
   
procedure TForm1.PlayPauseClick(Sender: TObject);
begin
  try
    if Audio.FileName = '' then
      PlayAudio
    else
      Audio.resume;
  except;
  end;
end;
   
procedure TForm1.NextClick(Sender: TObject);
begin
  try
    if RandomTrack.State = cbchecked then
      RandomTracks
    else
      NextTrack
  except
  end;
end;
   
procedure TForm1.OPenClick(Sender: TObject);
Var
  I: Integer;
begin
  if OpenDialog1.Execute then
    for I := 0 to OpenDialog1.Files.Count-1 do 
      with Playlist do 
        Playlist.Items.Add(ExtractFileName(OpenDialog1.Files.Strings[i]));
end;
   
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  if Audio.FileName <> '' then
    UpdateProgress;
end;
--- 每個人都是一本書
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-16 15:47:49 IP:202.39.xxx.xxx 未訂閱
還有這兩篇: http://bdn.borland.com/article/0,1410,17071,00.html http://www.delphi3000.com/articles/article_2792.asp --- 每個人都是一本書
w3top
一般會員


發表:12
回覆:13
積分:5
註冊:2002-04-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-16 20:14:07 IP:61.30.xxx.xxx 未訂閱
就是要這樣,謝謝版主的指點,真是太感激了
kraen4468
初階會員


發表:66
回覆:112
積分:35
註冊:2003-12-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-08 17:50:24 IP:61.222.xxx.xxx 未訂閱
不好意思我怎麼試都試不出來 可以放檔案在上面嗎 謝謝w3top大大 ~我還在學習狀態希望多多向您學習~
w3top
一般會員


發表:12
回覆:13
積分:5
註冊:2002-04-28

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-09 14:21:20 IP:61.30.xxx.xxx 未訂閱
Kraen4468您好 上面的是可以的,如果是不出來,還有另外一個方式,你可以到深度歷險,上面找一個元件名稱為Masplayer ,這個元件做到同樣的功能我有試過沒有問題
系統時間:2024-05-05 3:19:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!