Delphi多媒体设计之TMediaPlayer组件(一)

VCL为简单多媒体操作提供MediaPlayer组件。该组件位于选项板组件System中。

image

该组件可播放Wave文件、MIDI文件、AVI视频等等。如果只是简单的播放Wave文件,常常使用上一讲中的PlaySound函数。也可以使用更复杂的MediaPlayer组件。

TMediaPlayer组件最简单的使用方法就是将其拖放到窗体上。如下图:

image

窗体上显示出播放的控制按钮,控制按钮包括play、pause、stop、next、previous、step、back、record、eject。如上图中。

使用MediaPlayer最基本的形式就是设置TMediaPlayer组件的FileName属性为有效的多媒体文件名,然后并点击MediaPlayer上的play按钮即可。多媒体文件可任选WAV、MID或AVI文件,MediaPlayer知道怎样自动处理这些文件。如果想要让TMediaPlayer做一些更有趣的事情,就需要了解更深一些了。

尽管有时MediaPlayer的控制按钮很有用,但是,有时候却需要使用不带控制按钮的MediaPlayer,通过代码来实现MediaPlayer的播放、开始等操作,如果不想在运行阶段看到MediaPlayer控制按钮,可以设置它的Visible属性为False。

 


MediaPlayer属性、方法和事件(MediaPlayer Properties, Methods, and Events)

TMediaPlayer具有许多属性。其中大部分都是很容易理解的。但是有些比较复杂。下面的表格中列出了TMediaPlayer的主要属性。

表1. TMediaPlayer主要属性

image

属性 描述
AutoOpen Determines if the media player is opened automatically when the application is run.
是否已启动播放程序就打开设备,默认为False。
AutoRewind Determines if the media player control rewinds before playing or recording.
当为True时,在媒体播放后,媒体位置指针将被重新设置为媒体起点,默认为True。
DeviceType Specifies a multimedia device type to open the media player.
多媒体设备类型。设置成dtAutoSelect时,可根据文件名扩展自动选择设备类型,默认值为dtAutoSelect。
Display Specifies the display window for an multimedia device that uses a window for output.
用于设置媒体设备的显示窗口。
DisplayRect Specifies a rectangular area in the control specified by the Display property that is used to display output from a multimedia device.
用于设置媒体设备回放窗口的大小和位置,重新确定视频大小以适应矩形框。
EnableButtons Determines which buttons on the media player are usable.
决定播放控制按钮是否允许使用。默认为所有按钮。
EndPos Specifies the position within the currently loaded medium at which to stop playing or recording.
媒体结束位置,媒体播放是从起点到终点(EndPos),如果没有指定EndPos,媒体将全部播放完。所赋EndPos值依赖于播放的类型。
Error Specifies the MCI error code returned by the media control method.
最近一次操作的错误码。
ErrorMessage Describes the error code stored in the Error property.
最近错误的文本描述。
Frame Specifies the number of frames moved forward or backward.
调用Back或Next方法时,或点击MediaPlayer控制栏上的Back或Next按钮时所要移动的帧数。
Length Specifies the length of the medium in the open multimedia device.
媒体长度,Length值依赖于被播放的媒体类型和TimeFormat的值。
Mode Indicates the state of the currently open multimedia device.
设备状态,可以是mpNotready, mpStopped, mpPlaying, mpRecording, mpSeeking, mpPaused, mpOpen。
Notify Determines whether an OnNotify event is generated.
若为True时,当MediaPlayer完成一个操作时,产生OnNotify事件。
Notify Value Indicates the result of the last media control method that requested a notification.
上次通知操作的结果。可以是nvSuccessful, nvSuperseded, nvAborted或nvFailure。
Position Specifies the current position within the currently loaded medium.
媒体当前位置。
StartPos Specifies the position within the currently loaded medium from which to begin playing or recording.
媒体起点,媒体从StartPos开始播放到EndPos,若没有指定媒体起点StartPos,媒体从头开始播放。所赋StartPos值依赖于媒体类型。
TimeFormat Determines the format used to specify position information.
使用媒体设备的时间格式。时间格式可以用毫秒、帧、字节、采样、磁道/分/秒、小时/分/秒等格式。
Tracks Specifies the number of playable tracks on the open multimedia device.
媒体所包含的磁道数(对于CD设备来说)
VisibleButtons Indicates which of the buttons on the media player are visible.
指定MediaPlayer控制栏上显示的按钮,默认为所有按钮。
Wait Determines whether a media control method returns control to the application only after it has been completed.
决定控制否马上或在媒体播放完之后返回调用。

 

MediaPlayer组件还具有很多方法。这些方法许多功能与控制栏按钮相同。下面表格列出了TMediaPlayer主要方法。

表2. TMediaPlayer主要方法

方法 描述
Back Steps backward a number of frames (determined by the value of the Frames property) in the currently loaded medium.
将媒体回放由Frame属性指定的帧数。
Close Closes the open multimedia device.
关闭设备。
Eject Releases the loaded medium from the open multimedia device.
如果合适的话,退出媒体(例如,退出CD)。
Next Moves to the beginning of the next track of the currently loaded medium.
为支持轨道的设备开始下一个轨。
Open Opens a multimedia device.
打开设备(用于AutoOpen属性为False时)。
Pause Toggles the open multimedia device on or off.
暂停播放或录制。
Play Plays the media loaded in the open multimedia device.
开始设备的播放。
Previous Sets the current position to the beginning of the previous track if the position was at the beginning of a track when Previous was called.
移到前一个音轨的起点。
Resume Resumes playing or recording the currently paused multimedia device.
恢复pause中断的行为。
Rewind Sets the current position to the beginning of the the medium, which is stored in the Start property.
重新设置媒体位置为媒体的开头。
Save Saves the currently loaded medium to the file specified in the FileName property.
把媒体存储到FileName属性指定的文件中。
StartRecording Begins recording from the current Position or from the position specified in StartPos.
开始录制数据。
Step Moves forward a number of frames (determined by the Frames property) in the currently loaded medium.
前移Frame属性指定的帧数。
Stop Halts playing or recording.
停止播放或录制。

 

MediaPlayer组件仅有一个重要的事件。每当完成一个命令时,OnNotify事件被调用,但是只有在Notify属性设置为True时才行。可检验Error和NotifyValue属性,确定操作是否成功执行。

posted on 2012-07-12 22:26  pchmonster  阅读(11266)  评论(0编辑  收藏  举报

导航