添加背景音乐(200分)

  • 主题发起人 主题发起人 青檬檬
  • 开始时间 开始时间

青檬檬

Unregistered / Unconfirmed
GUEST, unregistred user!
想在一段已经录制好的wav文件里加入背景音乐
不知谁有过相关的经验
谢谢了
 
不难噢,那不是用playSound就行了吧? 有什么特别的要求吗?
 
加个playsound不断播放就可以了
 
PlaySound(PChar('./Sound/MyMusic.wav'),0,SND_ASYNC);
 
谢谢各位
我试试

如果可以马上结账[:D]

另外请问
背景音乐的格式有限制吗?
 
刚刚我的提问可能还有点差池
我想问的是
如何将2段wav文件混合成一段wav文件
 
可以用mediaplayer2控件个

mediaplayer1.filename:='c:/1.wav';
mediaplayer2.filename:='c:/2.mp3';
mediaplayer1.open;
mediaplayer1.play;
mediaplayer2.open;
mediaplayer2.play;


如果用PlaySound最好加到一个新的线程里面
 
但是我实际是需要得到两个文件合成后的新文件
用两个mediaplayer也只是效果而以
 
这是一个简单的经过测试的例子,用TMediaPlayer播放音乐的同时,点击Button2来同步播放背景音乐。
unit utMain;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, MPlayer;

type
TForm1 = class(TForm)
MediaPlayer1: TMediaPlayer;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;


var
Form1: TForm1;

implementation

{$R *.dfm}

uses
utPlaySoundThread;

procedure TForm1.Button1Click(Sender: TObject);
begin

MediaPlayer1.FileName := 'D:/MyProgram/Delphi/Temp/01.mp3';
MediaPlayer1.Open;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
ps:TPlaySound;
begin

ps := TPlaySound.Create(False);
end;


end.


*************************播放背景音乐的线程

unit utPlaySoundThread;

interface

uses
Classes, Mmsystem;

type
TPlaySound = class(TThread)
private
{ Private declarations }
protected
procedure Execute;
override;
procedure Play;
end;


implementation

{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,

Synchronize(UpdateCaption);

and UpdateCaption could look like,

procedure TPlaySound.UpdateCaption;
begin

Form1.Caption := 'Updated in a thread';
end;

}

{ TPlaySound }

procedure TPlaySound.Play;
begin

PlaySound('D:/MyProgram/Delphi/Temp/music.wav',1,SND_ASYNC);
end;


procedure TPlaySound.Execute;
begin

{ Place thread code here }
Synchronize(Play);
end;


end.

建议用线程播放背景音乐,这样音乐不会受到其它操作的影响。至于播放两个文件,可以使用其它工具把两个WAV文件合并起来就行了。
 
如果要编程合并wav就必须了解wav的文件结构。
 
我能得到也是说需要了解wav的文件结构
好像研究这个问题的人不是很多[:(]
 
[:D] 要不然就用第三方工具或控件合成
 
andy263
你有什么其它联系方式吗
我的msn emily_mo@hotmail.com
我现在在找一些这样的软件
可是没有合适的
我想看看别人怎么实现的[:)]
 
用cooledit吧!
 
后退
顶部