重TMemoryStream讀取音樂資料卻無法撥放 |
缺席
|
dietk
一般會員 發表:2 回覆:6 積分:1 註冊:2011-07-23 發送簡訊給我 |
我重TMemoryStream讀取音樂資料卻無法撥放
有用MediaPlayerMemoryFile來讀取TMemoryStream但還是無法撥放 http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=90327 我打的程式碼如下,請各位大大幫我解謎 [code delphi] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, cmpMediaPlayerMemoryFile, MPlayer; type TForm1 = class(TForm) MediaPlayer1: TMediaPlayer; MediaPlayerMemoryFile1: TMediaPlayerMemoryFile; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var t: TMemoryStream; begin t:=TMemoryStream.Create; t.LoadFromFile('1234.wav'); MediaPlayerMemoryFile1.MemoryStream.LoadFromStream(t); t.Free ; MediaPlayerMemoryFile1.FileName := 'test.xxx'; MediaPlayer1.FileName:= MediaPlayerMemoryFile1.FileName ' ' ; MediaPlayer1.DeviceType := dtWaveAudio ; MediaPlayer1.Open; MediaPlayer1.Play; end; end.[/code] |
dietk
一般會員 發表:2 回覆:6 積分:1 註冊:2011-07-23 發送簡訊給我 |
沒人幫我解決 我來自問自答好了(絞盡腦汁終於改成功了.....)
把 uses MPlay 裡面程式碼 (記得另存為新的副程式在去uses他) [code delphi] if FDeviceType <> dtAutoSelect then FFlags := FFlags or mci_Open_Type; if FDeviceType <> dtAutoSelect then FFlags := FFlags or mci_Open_Type else FFlags := FFlags or MCI_OPEN_ELEMENT;[/code] 改成這樣就可以撥放了 [code delphi] if FDeviceType <> dtAutoSelect then FFlags := FFlags or mci_Open_Type; if FElementName <> '' then FFlags := FFlags or MCI_OPEN_ELEMENT;[/code]
編輯記錄
dietk 重新編輯於 2011-08-03 01:09:03, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |