Difference between revisions of "Multimedia Programming/zh CN"
Line 80: | Line 80: | ||
sndPlaySound('C:\sounds\test.wav', snd_Async or snd_NoDefault); | sndPlaySound('C:\sounds\test.wav', snd_Async or snd_NoDefault); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | 自动防故障的方法,这将允许添加的路径和文件名是非拉丁字母(如:中文): | |
<syntaxhighlight> | <syntaxhighlight> | ||
... | ... | ||
uses LazUTF8; | uses LazUTF8; | ||
... | ... | ||
− | sndPlaySound(pchar(UTF8ToWinCP('C:\sounds\ | + | sndPlaySound(pchar(UTF8ToWinCP('C:\sounds\测试.wav')), snd_Async or snd_NoDefault); |
</syntaxhighlight> | </syntaxhighlight> | ||
或者 | 或者 | ||
Line 92: | Line 92: | ||
uses LazUTF8; | uses LazUTF8; | ||
... | ... | ||
− | sndPlaySound(pchar(UTF8ToConsole('C:\sounds\ | + | sndPlaySound(pchar(UTF8ToConsole('C:\sounds\测试.wav')), snd_Async or snd_NoDefault); |
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 03:07, 24 October 2018
│
Deutsch (de) │
English (en) │
日本語 (ja) │
한국어 (ko) │
русский (ru) │
中文(中国大陆) (zh_CN) │
播放视频
播放器应用程序
一旦你知道了命令行参数,你可以使用TProcessUTF8启动播放器:
uses
Classes, ..., LCLProc, UTF8Process;
...
implementation
procedure TMainForm.Button1Click(Sender: TObject);
var
Player: TProcessUTF8;
begin
Player:=TProcessUTF8.Create(nil);
try
Player.CommandLine:=PathToPlayer+' '+ParametersAndMediaFile;
Player.Execute;
finally
Player.Free;
end;
end;
例如在Linux下启动的mplayer播放视频:
uses
Classes, ..., FileUtil, LCLProc, UTF8Process;
...
implementation
procedure TMainForm.Button1Click(Sender: TObject);
var
Player: TProcessUTF8;
Filename: String;
PlayerPath: String;
PlayerParams: String;
begin
Filename:='/home/username/video.mpg';
PlayerPath:=FindDefaultExecutablePath('mplayer');
PlayerParams:='"'+Filename+'"';
Player:=TProcessUTF8.Create(nil);
try
Player.CommandLine:=PlayerPath+' '+PlayerParams;
Player.Execute;
finally
Player.Free;
end;
end;
VFW - Windows视频
在Windows捕捉和播放视频流从电视卡和网络摄像头 VFW API 可以用 SysRec.(维基百科上的VFM)
Linux gtk2/X上的MPlayer
mplayer 是一个开源和免费的电影播放器。 There is a LCL control embedding the mplayer(LCL中可以内嵌入mplayer), 这样你就可以建立你自己的电影播放器或者只是播放视频在您的应用程序。你可以在这里下载:
svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/mplayer mplayer
播放音频
仅Windows:使用Windows API
你可以使用Windows API播放文件(如wav):
...
uses MMSystem;
...
sndPlaySound('C:\sounds\test.wav', snd_Async or snd_NoDefault);
自动防故障的方法,这将允许添加的路径和文件名是非拉丁字母(如:中文):
...
uses LazUTF8;
...
sndPlaySound(pchar(UTF8ToWinCP('C:\sounds\测试.wav')), snd_Async or snd_NoDefault);
或者
...
uses LazUTF8;
...
sndPlaySound(pchar(UTF8ToConsole('C:\sounds\测试.wav')), snd_Async or snd_NoDefault);
显然,这不是跨平台
使用音频组件
查看这个页面页面 Audio Component Suite
使用OpenAL库
Delphi的教程可以在这里找到: [1]
Free Pascal 访问OpenAL单元在 fpc/packages/openal 以及 用法示例
BASS
BASS 库可以到这里下载 :http://www.un4seen.com/ 和 http://www.un4seen.com/forum/?topic=8682.0
有一个DJ应用程序,在 Windows, Linux 和 Mac OSX, written with Lazarus and using Bass lib(Lazarus中用Bass库):
https://sites.google.com/site/fiensprototyping/
Audiere库
已绑定Delphi,但他们不能工作在FPC:
- http://www.casteng.com/whypascal.shtml
- http://www.afterwarp.net/resources/soundlib
- http://code.google.com/p/audiere-bind-delphi/
Audorra 库
Lazarus上工作正常:
http://sourceforge.net/projects/audorra/
OMEGA 引擎
OMEGA引擎是一个完整的游戏引擎只一有个文件Omega.dll仅50KB。它可以播放FLAC,OGG,MP3,MP2,AMR和WMA文件。It searches and uses installed audio codecs from the system.(它在系统中搜索已经安装的音频编解码器)
http://sourceforge.net/projects/omega-engine/files/
这个项目已经停止,它非常容易使用:
Media_Play('Music.mp3', TRUE);
PortAudio
Various bindings for PortAudio, a cross-platform, open source library for audio playback and recording are available.
(PortAudio是一个跨平台,支持音频播放和录音的开源库。)
对于一些版本查看[[2]]。 论坛用户FredvS写了一个Pascal单元,可以动态加载PortAudio:[3]
SDL + SDL_mixer
The basic SDL library comes with a very simple sound system. On top of that, SDL mixer adds more sound APIs which build a more flexible solution.
(基本的SDL库提供了一个非常简单的音效系统。最重要的是,SDL的混音器增加了更多的声音API,它建立一个更加灵活的解决方案。)
访问SDL单位库位于 fpc/packages/sdl.
FMOD
Is a closed source solution. It is free for use for non-comercial software, but requires the payment of licenses for commercial software.
(它是一个闭源的解决方案。它是免费的但非商业使用软件。要求支付商业使用费用。)
Squall 音效
Lazarus上工作正常: 它具有3D音频和EAX特效,但只支持MP3,OGG和WAV格式。
http://www.afterwarp.net/resources/soundlib
FPSound
FPSound is a new library being developed in the mold of fpspreadsheet and fpvectorial: it has independent modules to read, write and play sound files and also an intermediary representation for editing. See FPSound
(FPSound是在fpspreadsheet和fpvectorial基础上开发的新库:它具有独立的模块来读取,编写和播放声音文件并编辑的中间表示。查看 FPSound)
UOS (United OpenLib of Sound)
UOS : United OpenLib of Sound. UOS unifies 最好的开源音频库。
UOS可以:
- 播放MP3,OGG,WAV,FLAC,...音频文件。
- With 16, 32 or float 32 bit resolution.(
具有16,32或浮点32位分辨率) - 记录所有类型输入到文件中。
- 添加DSP效果器和过滤器, however many you want and record it.
- Listen to multiple inputs and outputs.(
播放多个输入和输出)
UOS使用PortAudio,SndFile和Mpg123音频库。
包中包含:
- 示例
- Linux 32/64, Windows 32/64, Mac OSX 32的二进制库
http://sites.google.com/site/fiensprototyping/U_OS_Test.tar.gz