点击或拖拽改变大小

MediaPlayer 类

The MediaPlayer type is used to control playback, set renderers, provide events and much more
继承层次

命名空间:  LibVLCSharp.Shared
程序集:  CPF.Vlc (在 CPF.Vlc.dll 中) 版本:0.8.8.5
语法
C#
public class MediaPlayer : Internal

MediaPlayer 类型公开以下成员。

构造函数
  名称说明
公共方法MediaPlayer(LibVLC)
Create an empty Media Player object
公共方法MediaPlayer(Media)
Create a Media Player object from a Media
Top
属性
  名称说明
公共属性AspectRatio
Get/set current video aspect ratio. Set to null to reset to default Invalid aspect ratios are ignored.
公共属性AudioDelay
Get current audio delay (microseconds).
公共属性AudioOutputDeviceEnum
Gets a list of potential audio output devices

Not all audio outputs support enumerating devices. The audio output may be functional even if the list is empty (NULL). The list may not be exhaustive. Some audio output devices in the list might not actually work in some circumstances.

By default, it is recommended to not specify any explicit audio device.

公共属性AudioTrack
Get current audio track ID or -1 if no active input.
公共属性AudioTrackCount
Get the number of available audio tracks (int), or -1 if unavailable
公共属性AudioTrackDescription
Retrive the audio track description
公共属性CanPause
True if the media player can pause
公共属性Channel
Get current audio channel.
公共属性Chapter
Set movie chapter (if applicable).

Get the movie chapter number currently playing, or -1 if there is no media.

公共属性ChapterCount
Get the number of chapters in movie, or -1.
公共属性CropGeometry
Get/Set current crop filter geometry. Empty string to unset
公共属性EnableHardwareDecoding
Enable/disable hardware decoding in a crossplatform way.
公共属性EnableKeyInput
Enable or disable key press events handling, according to the LibVLC hotkeys configuration. By default and for historical reasons, keyboard events are handled by the LibVLC video widget. Note On X11, there can be only one subscriber for key press and mouse click events per window. If your application has subscribed to those events for the X window ID of the video widget, then LibVLC will not be able to handle key presses and mouse clicks in any case. Warning This function is only implemented for X11 and Win32 at the moment. true to handle key press events, false to ignore them.
公共属性EnableMouseInput
Enable or disable mouse click events handling. By default, those events are handled. This is needed for DVD menus to work, as well as a few video filters such as "puzzle". Warning This function is only implemented for X11 and Win32 at the moment. true to handle mouse click events, false to ignore them.
公共属性FileCaching
Caching value for local files, in milliseconds [0 .. 60000ms]
公共属性Fps
Get the frames per second (fps) for this playing movie, or 0 if unspecified
公共属性Fullscreen
Enable or disable fullscreen. Warning, TL;DR version : Unless you know what you're doing, don't use this. Put your VideoView inside a fullscreen control instead, refer to your platform documentation.

Warning, long version : With most window managers, only a top-level windows can be in full-screen mode. Hence, this function will not operate properly if libvlc_media_player_set_xwindow() was used to embed the video in a non-top-level window. In that case, the embedding window must be reparented to the root window before fullscreen mode is enabled. You will want to reparent it back to its normal parent when disabling fullscreen.

return the fullscreen status (boolean)

公共属性Hwnd
Set a Win32/Win64 API window handle (HWND) where the media player should render its video output. If LibVLC was built without Win32/Win64 API output support, then this has no effects.

Get the Windows API window handle (HWND) previously set

公共属性IsPlaying
return true if the media player is playing, false otherwise
公共属性IsSeekable
True if the media player can seek
公共属性Length
The movie length (in ms), or -1 if there is no media.
公共属性Media
Get the media used by the media_player. Set the media that will be used by the media_player. If any, previous md will be released. Note: It is safe to release the Media on the C# side after it's been set on the MediaPlayer successfully
公共属性Mute
Get current mute status. Set mute status. Warning This function does not always work. If there are no active audio playback stream, the mute status might not be available. If digital pass-through (S/PDIF, HDMI...) is in use, muting may be unapplicable. Also some audio output plugins do not support muting at all. Note To force silent playback, disable all audio tracks. This is more efficient and reliable than mute.
公共属性NativeReference
The pointer to the native code representation of this object
(继承自 Internal。)
公共属性NetworkCaching
Caching value for network resources, in milliseconds [0 .. 60000ms]
公共属性NsObject
Get the NSView handler previously set return the NSView handler or 0 if none where set

Set the NSView handler where the media player should render its video output. Use the vout called "macosx".

The drawable is an NSObject that follow the VLCOpenGLVideoViewEmbedding protocol: VLCOpenGLVideoViewEmbedding NSObject Or it can be an NSView object. If you want to use it along with Qt4 see the QMacCocoaViewContainer. Then the following code should work: { NSView *video = [[NSView alloc] init]; QMacCocoaViewContainer *container = new QMacCocoaViewContainer(video, parent); libvlc_media_player_set_nsobject(mp, video); [video release]; } You can find a live example in VLCVideoView in VLCKit.framework.

公共属性OutputDevice
Get the current audio output device identifier. This complements SetOutputDevice(String, String) warning The initial value for the current audio output device identifier may not be set or may be some unknown value.A LibVLC application should compare this value against the known device identifiers (e.g.those that were previously retrieved by a call to AudioOutputDeviceEnum or AudioOutputDevices(String)) to find the current audio output device. It is possible that the selected audio output device changes(an external change) without a call to SetOutputDevice(String, String).That may make this method unsuitable to use if a LibVLC application is attempting to track dynamic audio device changes as they happen.
公共属性Position
Set movie position as percentage between 0.0 and 1.0. This has no effect if playback is not enabled. This might not work depending on the underlying input format and protocol.

Get movie position as percentage between 0.0 and 1.0.

公共属性ProgramScambled
True if the current program is scrambled

LibVLC 2.2.0 or later

公共属性Rate
Get the requested movie play rate. warning

Depending on the underlying media, the requested rate may be different from the real playback rate.

公共属性Role
Gets the media role.

version LibVLC 3.0.0 and later.

公共属性Scale
Get/Set the current video scaling factor. See also MediaPlayer::setScale() . That is the ratio of the number of pixels on screen to the number of pixels in the original decoded video in each dimension.Zero is a special value; it will adjust the video to the output window/drawable(in windowed mode) or the entire screen. Note that not all video outputs support scaling.
公共属性Spu
The current video subtitle track
公共属性SpuCount
Get the number of available video subtitles.
公共属性SpuDelay
Get the current subtitle delay.
公共属性SpuDescription
Retrieve SpuDescription in a TrackDescription struct
公共属性State
Get the current state of the media player (playing, paused, ...)
公共属性Teletext
Get current teletext page requested. Set new teletext page to retrieve.
公共属性Time
Set the movie time (in ms). This has no effect if no media is being played. Not all formats and protocols support this.

Get the movie time (in ms), or -1 if there is no media.

公共属性Title
Set movie title number to play

Get movie title number currently playing, or -1

公共属性TitleCount
The title number count, or -1
公共属性TitleDescription
Get the description of available titles.
公共属性VideoTrack
Get current video track ID (int) or -1 if no active input.
公共属性VideoTrackCount
Get number of available video tracks.
公共属性VideoTrackDescription
Get the description of available video tracks.
公共属性Viewpoint
Current 360 viewpoint of this mediaplayer.

Update with UpdateViewpoint(Single, Single, Single, Single, Boolean)

公共属性Volume
Get/Set the volume in percents (0 = mute, 100 = 0dB)
公共属性VoutCount
Get the number of video outputs
公共属性WillPlay
True if the player is able to play
公共属性XWindow
Set an X Window System drawable where the media player should render its video output. The call takes effect when the playback starts. If it is already started, it might need to be stopped before changes apply. If LibVLC was built without X11 output support, then this function has no effects. By default, LibVLC will capture input events on the video rendering area. Use libvlc_video_set_mouse_input() and libvlc_video_set_key_input() to disable that and deliver events to the parent window / to the application instead. By design, the X11 protocol delivers input events to only one recipient.

Warning: The application must call the XInitThreads() function from Xlib before libvlc_new(), and before any call to XOpenDisplay() directly or via any other library.Failure to call XInitThreads() will seriously impede LibVLC performance. Calling XOpenDisplay() before XInitThreads() will eventually crash the process. That is a limitation of Xlib. uint: X11 window ID

Top
方法
  名称说明
公共方法AddSlave
Add a slave to the current media player. note If the player is playing, the slave will be added directly. This call will also update the slave list of the attached VLC::Media.
公共方法AdjustFloat
Get adjust option float value
公共方法AdjustInt
Get integer adjust option.
公共方法ChapterCountForTitle
Get the number of chapters in title, or -1
公共方法ChapterDescription
Get the description of available chapters for specific title.
公共方法Cursor
Get the mouse pointer coordinates over a video. Coordinates are expressed in terms of the decoded video resolution, not in terms of pixels on the screen/viewport (to get the latter, you can query your windowing system directly). Either of the coordinates may be negative or larger than the corresponding dimension of the video, if the cursor is outside the rendering area. Warning The coordinates may be out-of-date if the pointer is not located on the video rendering area. LibVLC does not track the pointer if it is outside of the video widget. Note LibVLC does not support multiple pointers(it does of course support multiple input devices sharing the same pointer) at the moment.
公共方法Dispose
Dispose of this instance
(继承自 Internal。)
受保护的方法Dispose(Boolean)
Dispose override Effectively stops playback and disposes a media if any
(重写 InternalDispose(Boolean).)
公共方法Equals
Equals override based on the native instance reference
(重写 ObjectEquals(Object).)
受保护的方法Finalize (继承自 Object。)
公共方法FullChapterDescriptions
Get the full description of available chapters.
公共方法GetHashCode
Custom hascode implemenation for this MediaPlayer instance
(重写 ObjectGetHashCode.)
公共方法GetType (继承自 Object。)
公共方法LogoInt
Get integer logo option.
公共方法MarqueeInt
Get an integer marquee option value
公共方法MarqueeString
Get a string marquee option value
受保护的方法MemberwiseClone (继承自 Object。)
公共方法Navigate
Navigate through DVD Menu
公共方法NextChapter
Set next chapter (if applicable)
公共方法NextFrame
Display the next frame (if supported)
公共方法Pause
Toggle pause (no effect if there is no media)
公共方法Play
Start playback with Media that is set If playback was already started, this method has no effect
公共方法Play(Media)
Set media and start playback
公共方法PreviousChapter
Set previous chapter (if applicable)
公共方法SetAdjustFloat
Set adjust option as float. Options that take a different type value are ignored.
公共方法SetAdjustInt
Set adjust option as integer. Options that take a different type value are ignored. Passing libvlc_adjust_enable as option value has the side effect of starting (arg !0) or stopping (arg 0) the adjust filter.
公共方法SetAudioCallbacks
Sets callbacks and private data for decoded audio. Use libvlc_audio_set_format() or libvlc_audio_set_format_callbacks() to configure the decoded audio format. Note: The audio callbacks override any other audio output mechanism. If the callbacks are set, LibVLC will not output audio in any way.
公共方法SetAudioDelay
Set current audio delay. The audio delay will be reset to zero each time the media changes.
公共方法SetAudioFormat
Sets a fixed decoded audio format. This only works in combination with libvlc_audio_set_callbacks(), and is mutually exclusive with libvlc_audio_set_format_callbacks().
公共方法SetAudioFormatCallback
Sets decoded audio format via callbacks. This only works in combination with libvlc_audio_set_callbacks().
公共方法SetAudioOutput
Selects an audio output module. Note: Any change will take effect only after playback is stopped and restarted. Audio output cannot be changed while playing.
公共方法SetAudioTrack
Set current audio track.
公共方法SetChannel
Set current audio channel.
公共方法SetDeinterlace
Enable or disable deinterlace filter
公共方法SetEqualizer
Apply new equalizer settings to a media player. The equalizer is first created by invoking libvlc_audio_equalizer_new() or libvlc_audio_equalizer_new_from_preset(). It is possible to apply new equalizer settings to a media player whether the media player is currently playing media or not. Invoking this method will immediately apply the new equalizer settings to the audio output of the currently playing media if there is any. If there is no currently playing media, the new equalizer settings will be applied later if and when new media is played. Equalizer settings will automatically be applied to subsequently played media. To disable the equalizer for a media player invoke this method passing NULL for the p_equalizer parameter. The media player does not keep a reference to the supplied equalizer so it is safe for an application to release the equalizer reference any time after this method returns.
公共方法SetLogoInt
Set logo option as integer. Options that take a different type value are ignored. Passing libvlc_logo_enable as option value has the side effect of starting (arg !0) or stopping (arg 0) the logo filter.
公共方法SetLogoString
Set logo option as string. Options that take a different type value are ignored.
公共方法SetMarqueeInt
Enable, disable or set an integer marquee option Setting libvlc_marquee_Enable has the side effect of enabling (arg !0) or disabling (arg 0) the marq filter.
公共方法SetMarqueeString
Enable, disable or set an string marquee option
公共方法SetOutputDevice
Configures an explicit audio output device. If the module paramater is NULL, audio output will be moved to the device specified by the device identifier string immediately.This is the recommended usage. A list of adequate potential device strings can be obtained with AudioOutputDeviceEnum However passing NULL is supported in LibVLC version 2.2.0 and later only; in earlier versions, this function would have no effects when the module parameter was NULL. If the module parameter is not NULL, the device parameter of the corresponding audio output, if it exists, will be set to the specified string. A list of adequate potential device strings can be obtained with AudioOutputDevices(String)
公共方法SetPause
Pause or resume (no effect if there is no media). version LibVLC 1.1.1 or later
公共方法SetRate
Set movie play rate
公共方法SetRenderer
Set a renderer to the media player.
公共方法SetRole
Sets the media role.

version LibVLC 3.0.0 and later.

公共方法SetSpu
Set Spu (subtitle)
公共方法SetSpuDelay
Set the subtitle delay. This affects the timing of when the subtitle will be displayed. Positive values result in subtitles being displayed later, while negative values will result in subtitles being displayed earlier. The subtitle delay will be reset to zero each time the media changes.
公共方法SetVideoCallbacks
Set callbacks and private data to render decoded video to a custom area in memory. Use libvlc_video_set_format() or libvlc_video_set_format_callbacks() to configure the decoded format. Warning Rendering video into custom memory buffers is considerably less efficient than rendering in a custom window as normal. For optimal perfomances, VLC media player renders into a custom window, and does not use this function and associated callbacks. It is highly recommended that other LibVLC-based application do likewise. To embed video in a window, use libvlc_media_player_set_xid() or equivalent depending on the operating system. If window embedding does not fit the application use case, then a custom LibVLC video output display plugin is required to maintain optimal video rendering performances. The following limitations affect performance: Hardware video decoding acceleration will either be disabled completely, or require(relatively slow) copy from video/DSP memory to main memory. Sub-pictures(subtitles, on-screen display, etc.) must be blent into the main picture by the CPU instead of the GPU. Depending on the video format, pixel format conversion, picture scaling, cropping and/or picture re-orientation, must be performed by the CPU instead of the GPU. Memory copying is required between LibVLC reference picture buffers and application buffers (between lock and unlock callbacks).
公共方法SetVideoFormat
Set decoded video chroma and dimensions. This only works in combination with MediaPlayer::setCallbacks() , and is mutually exclusive with MediaPlayer::setFormatCallbacks()
公共方法SetVideoFormatCallbacks
Set decoded video chroma and dimensions. This only works in combination with libvlc_video_set_callbacks().
公共方法SetVideoTitleDisplay
Set if, and how, the video title will be shown when media is played.
公共方法SetVideoTrack
Set video track.
公共方法SetVolumeCallback
Set callbacks and private data for decoded audio. This only works in combination with libvlc_audio_set_callbacks(). Use libvlc_audio_set_format() or libvlc_audio_set_format_callbacks() to configure the decoded audio format.
公共方法Size
Get the pixel dimensions of a video.
公共方法Stop
Stop the playback (no effect if there is no media) 必须在线程里调用,否则容易死锁 warning: This is synchronous, and will block until all VLC threads have been joined. Calling this from a VLC callback is a bound to cause a deadlock.
公共方法TakeSnapshot
Take a snapshot of the current video window. If i_width AND i_height is 0, original size is used. If i_width XOR i_height is 0, original aspect-ratio is preserved.
公共方法ToggleFullscreen
Toggle fullscreen status on non-embedded video outputs.

warning: The same limitations applies to this function as to MediaPlayer::setFullscreen()

公共方法ToggleMute
Toggle mute status. Warning Toggling mute atomically is not always possible: On some platforms, other processes can mute the VLC audio playback stream asynchronously. Thus, there is a small race condition where toggling will not work. See also the limitations of libvlc_audio_set_mute().
公共方法ToggleTeletext
Toggle teletext transparent status on video output.
公共方法ToString (继承自 Object。)
公共方法UnsetEqualizer
unsetEqualizer disable equalizer for this media player
公共方法UpdateViewpoint
Update the video viewpoint information. The values are set asynchronously, it will be used by the next frame displayed. It is safe to call this function before the media player is started. LibVLC 3.0.0 and later
Top
事件
  名称说明
公共事件AudioDevice
The mediaplayer's audio device changed
公共事件Backward
The mediaplayer went backward in the playback
公共事件Buffering
The mediaplayer is buffering
公共事件ChapterChanged
The mediaplayer changed the chapter of a media
公共事件Corked
The mediaplayer is corked
公共事件EncounteredError
The mediaplayer encountered an error during playback
公共事件EndReached
The mediaplayer reached the end of the playback
公共事件ESAdded
The mediaplayer has a new Elementary Stream (ES)
公共事件ESDeleted
The mediaplayer has one less Elementary Stream (ES)
公共事件ESSelected
An Elementary Stream (ES) was selected
公共事件Forward
The mediaplayer went forward in the playback
公共事件LengthChanged
The length of a playback changed
公共事件MediaChanged
The media of this mediaplayer changed
公共事件Muted
The mediaplayer is muted
公共事件NothingSpecial
Nothing special to report
公共事件Opening
The mediaplayer is opening a media
公共事件PausableChanged
The mediaplayer's pause capability changed
公共事件Paused
The mediaplayer paused playback
公共事件Playing
The mediaplayer started playing a media
公共事件PositionChanged
The mediaplayer's position changed
公共事件ScrambledChanged
The mediaplayer scrambled status changed
公共事件SeekableChanged
The mediaplayer's seek capability changed
公共事件SnapshotTaken
The mediaplayer took a snapshot
公共事件Stopped
The mediaplayer stopped playback
公共事件TimeChanged
The mediaplayer's playback time changed
公共事件TitleChanged
The title of the mediaplayer changed
公共事件Uncorked
The mediaplayer is uncorked
公共事件Unmuted
The mediaplayer is unmuted
公共事件VolumeChanged
The mediaplayer's volume changed
公共事件Vout
The Video Output count of the MediaPlayer changed
Top
字段
  名称说明
受保护的字段IsDisposed
Indicates whether this object has already been disposed
(继承自 Internal。)
受保护的字段Release
Release native resources by calling this C function
(继承自 Internal。)
Top
扩展方法
  名称说明
公共扩展器方法ConvertTo
类型转换
(由 ObjectExtenstions 定义。)
公共扩展器方法Delay
延迟操作
(由 ObjectExtenstions 定义。)
公共扩展器方法Equal
对象是否相等
(由 ObjectExtenstions 定义。)
公共扩展器方法GetCreationCode (由 ObjectExtenstions 定义。)
公共扩展器方法GetPropretyValue
获取对象属性值
(由 ObjectExtenstions 定义。)
公共扩展器方法GetValue
快速动态获取对象的属性值
(由 FastReflectionExtensions 定义。)
公共扩展器方法Invoke
快速动态调用对象的方法
(由 FastReflectionExtensions 定义。)
公共扩展器方法SetPropretyValue
设置属性值
(由 ObjectExtenstions 定义。)
公共扩展器方法SetValue
快速动态设置对象的属性值
(由 FastReflectionExtensions 定义。)
Top
参见