Instructions to code your own VLC Lua scripts.
$Id$
1 - About Lua
=============
Lua documentation is available on http://www.lua.org . The reference manual
is very useful: http://www.lua.org/manual/5.1/ .
VLC uses Lua 5.1
All the Lua standard libraries are available.
2 - Lua in VLC
==============
Several types of VLC Lua scripts can currently be coded:
* Playlist (see playlist/README.txt)
* Art fetcher (see meta/README.txt)
* Interface (see intf/README.txt)
* Extensions (see extensions/README.txt)
* Services Discovery (see sd/README.txt)
Lua scripts are tried in alphabetical order in the user's VLC config
directory lua/{playlist,meta,intf}/ subdirectory on Windows and Mac OS X or
in the user's local share directory (~/.local/share/vlc/lua/... on linux),
then in the global VLC lua/{playlist,meta,intf}/ directory.
3 - VLC specific Lua modules
============================
All VLC specifics modules are in the "vlc" object. For example, if you want
to use the "info" function of the "msg" VLC specific Lua module:
vlc.msg.info( "This is an info message and will be displayed in the console" )
Note: availability of the different VLC specific Lua modules depends on
the type of VLC Lua script your are in.
Access lists
------------
local a = vlc.acl(true) -> new ACL with default set to allow
a:check("10.0.0.1") -> 0 == allow, 1 == deny, -1 == error
a("10.0.0.1") -> same as a:check("10.0.0.1")
a:duplicate() -> duplicate ACL object
a:add_host("10.0.0.1",true) -> allow 10.0.0.1
a:add_net("10.0.0.0",24,true) -> allow 10.0.0.0/24 (not sure)
a:load_file("/path/to/acl") -> load ACL from file
Configuration
-------------
config.get( name ): Get the VLC configuration option "name"'s value.
config.set( name, value ): Set the VLC configuration option "name"'s value.
Dialog
------
local d = vlc.dialog( "My VLC Extension" ): Create a new UI dialog, with a human-readable title: "My VLC Extension"
d:show(): Show this dialog.
d:hide(): Hide (but not close) this dialog.
d:delete(): Close and delete this dialog.
d:set_title( title ): set the title of this dialog.
d:update(): Update the dialog immediately (don't wait for the current function to return)
d:del_widget( widget ): Delete 'widget'. It disappears from the dialog and repositioning may occur.
In the following functions, you can always add some optional parameters: col, row, col_span, row_span, width, height.
They define the position of a widget in the dialog:
- row, col are the absolute positions on a grid of widgets. First row, col are 1.
- row_span, col_span represent the relative size of a widget on the grid. A widget with col_span = 4 will be displayed as wide as 4 widgets of col_span = 1.
- width and height are size hints (in pixels) but may be discarded by the GUI module
Example: w = d:add_label( "My Label", 2, 3, 4, 5 ) will create a label at row 3, col 2, with a relative width of 4, height of 5.
d:add_button( text, func, ... ): Create a button with caption "text" (string). When clicked, call function "func". func is a function reference.
d:add_label( text, ... ): Create a text label with caption "text" (string).
d:add_html( text, ... ): Create a rich text label with caption "text" (string), that supports basic HTML formatting (such as <i> or <h1> for instance).
d:add_text_input( text, ... ): Create an editable text field, in order to read user input.
d:add_password( text, ... ): Create an editable text field, in order to read user input. Text entered in this box will not be readable (replaced by asterisks).
d:add_check_box( text, ... ): Create a check box with a text. They have a boolean state (true/false).
d:add_dropdown( ... ): Create a drop-down widget. Only 1 element can be selected the same time.
d:add_list( ... ): Create a list widget. Allows multiple or empty selections.
d:add_image( path, ... ): Create an image label. path is a relative or absolute path to the image on the local computer.
Some functions can also be applied on widgets:
w:set_text( text ): Change text displayed by the widget. Applies to: button, label, html, text_input, password, check_box.
w:get_text(): Read text displayed by the widget. Returns a string. Applies to: button, label, html, text_input, password, check_box.
w:set_checked( bool ): Set check state of a check box. Applies to: check_box.
w:get_checked(): Read check state of a check box. Returns a boolean. Applies to: check_box.
w:add_value( text, id ): Add a value with identifier 'id' (integer) and text 'text'. It's always best to have unique identifiers. Applies to: drop_down.
w:get_value(): Return identifier of the selected item. Corresponds to the text value chosen by the user. Applies to: drop_down.
w:clear(): Clear a list or drop_down widget. After that, all values previously added are lost.
w:get_selection(): Retrieve a table representing the current selection. Keys are the ids, values are the texts associated. Applies to: list.
Extension
---------
deactivate(): Deactivate current extension (after the end of the current function).
HTTPd
-----
http( host, port, [cert, key, ca, crl]): create a new HTTP (SSL) daemon.
local h = vlc.httpd( "localhost", 8080 )
h:handler( url, user, password, acl, callback, data ) -- add a handler for given url. If user and password are non nil, they will be used to authenticate connecting clients. If acl is non nil, it will be used to restrict access. callback will be called to handle connections. The callback function takes 7 arguments: data, url, request, type, in, addr, host. It returns the reply as a string.
h:file( url, mime, user, password, acl, callback, data ) -- add a file for given url with given mime type. If user and password are non nil, they will be used to authenticate connecting clients. If acl is non nil, it will be used to restrict access. callback will be called to handle connections. The callback function takes 2 arguments: data and request. It returns the reply as a string.
h:redirect( url_dst, url_src ): Redirect all connections from url_src to url_dst.
Input
-----
input.is_playing(): Return true if input exists.
input.add_subtitle(url): Add a subtitle to the current input
input.item(): Get the current input item. Input item methods are:
:uri(): Get item's URI.
:name(): Get item's name.
:duration(): Get item's duration in seconds or negative value if unavailable.
:is_preparsed(): Return true if meta data has been preparsed
:metas(): Get meta data as a table.
:set_meta(key, value): Set meta data.
:info(): Get the current input's info. Return value is a table of tables. Keys of the top level table are info category labels.
:stats(): Get statistics about the input. This is a table with the following fields:
.read_packets
.read_bytes
.input_bitrate
.average_input_bitrate
.demux_read_packets
.demux_read_bytes
.demux_bitrate
.average_demux_bitrate
.demux_corrupted
.demux_discontinuity
.decoded_audio
.decoded_video
.displayed_pictures
.lost_pictures
.sent_packets
.sent_bytes
.send_bitrate
.played_abuffers
.lost_abuffers
MD5
---
md5( str ): return the string's hash
md5(): create an md5 object with the following methods:
:add( str ): add a string to the hash
:end_(): finish hashing
:hash(): return the hash
Messages
--------
msg.dbg( [str1, [str2, [...]]] ): Output debug messages (-vv).
msg.warn( [str1, [str2, [...]]] ): Output warning messages (-v).
msg.err( [str1, [str2, [...]]] ): Output error messages.
msg.info( [str1, [str2, [...]]] ): Output info messages.
Misc
----
misc.version(): Get the VLC version string.
misc.copyright(): Get the VLC copyright statement.
misc.license(): Get the VLC license.
misc.datadir(): Get the VLC data directory.
misc.userdatadir(): Get the user's VLC data directory.
misc.homedir(): Get the user's home directory.
misc.configdi
没有合适的资源?快使用搜索试试~ 我知道了~
vlc-1.1.9-win32.zip
共580个文件
dll:276个
png:101个
mo:73个
4星 · 超过85%的资源 需积分: 10 18 下载量 173 浏览量
2011-12-06
15:27:32
上传
评论
收藏 34.08MB ZIP 举报
温馨提示
VLC播放器是一个操作非常简单的媒体播放器,VLC播放器支持多种音频视频格式(MPEG-1, MPEG-2, MPEG-4, DivX, mp3, ogg...)和流媒体协议。最具特色的功能是可以边下载边观看Divx媒体文件,并可以播放播放不完全的AVI文件
资源推荐
资源详情
资源评论
收起资源包目录
vlc-1.1.9-win32.zip (580个子文件)
browse 2KB
browse 2KB
skin.catalog 167B
default.cfg 1KB
style.css 5KB
style.css 5KB
iehacks.css 1KB
iehacks.css 1KB
libqt4_plugin.dll 10.41MB
libavcodec_plugin.dll 7.02MB
libvlccore.dll 2.17MB
libskins2_plugin.dll 2MB
liblibass_plugin.dll 1.68MB
libfreetype_plugin.dll 1.68MB
libvorbis_plugin.dll 1.63MB
libzvbi_plugin.dll 1.38MB
libprojectm_plugin.dll 1.36MB
libschroedinger_plugin.dll 1.24MB
libmkv_plugin.dll 1.16MB
libxml_plugin.dll 1.08MB
libdirac_plugin.dll 1.08MB
libtaglib_plugin.dll 1.05MB
liblive555_plugin.dll 1.03MB
libgnutls_plugin.dll 1020KB
libx264_plugin.dll 944KB
libcaca_plugin.dll 812KB
libmod_plugin.dll 430KB
libstream_out_rtp_plugin.dll 429KB
libstream_out_raop_plugin.dll 393KB
librtp_plugin.dll 392KB
libremoteosd_plugin.dll 391KB
libaccess_output_shout_plugin.dll 385KB
libgme_plugin.dll 371KB
libtheora_plugin.dll 362KB
liblua_plugin.dll 332KB
libfaad_plugin.dll 303KB
axvlc.dll 299KB
libswscale_plugin.dll 292KB
libsdl_image_plugin.dll 285KB
libvout_sdl_plugin.dll 267KB
libaout_sdl_plugin.dll 260KB
libflac_plugin.dll 259KB
libfluidsynth_plugin.dll 252KB
libpng_plugin.dll 232KB
libgoom_plugin.dll 227KB
libdvdnav_plugin.dll 226KB
libdshow_plugin.dll 203KB
libmp4_plugin.dll 190KB
libatmo_plugin.dll 179KB
libdtstofloat32_plugin.dll 174KB
npvlc.dll 158KB
libdvdread_plugin.dll 154KB
liblibmpeg2_plugin.dll 149KB
libbda_plugin.dll 147KB
libdvbsub_plugin.dll 146KB
libtwolame_plugin.dll 144KB
libi420_rgb_sse2_plugin.dll 132KB
libspeex_plugin.dll 128KB
libcdda_plugin.dll 127KB
libmpgatofixed32_plugin.dll 126KB
libmux_ts_plugin.dll 123KB
libts_plugin.dll 120KB
libplaylist_plugin.dll 104KB
libspatializer_plugin.dll 101KB
libvlc.dll 100KB
liboldhttp_plugin.dll 95KB
libdeinterlace_plugin.dll 94KB
libkate_plugin.dll 93KB
libmpc_plugin.dll 91KB
libogg_plugin.dll 90KB
libportaudio_plugin.dll 89KB
libaccess_bd_plugin.dll 89KB
libavi_plugin.dll 88KB
libaccess_http_plugin.dll 87KB
libmux_ps_plugin.dll 81KB
libsap_plugin.dll 79KB
libpostproc_plugin.dll 79KB
libzip_plugin.dll 78KB
libpacketizer_h264_plugin.dll 77KB
libaccess_mms_plugin.dll 75KB
libi420_rgb_mmx_plugin.dll 72KB
libasf_plugin.dll 70KB
libaccess_realrtsp_plugin.dll 68KB
liboldrc_plugin.dll 67KB
libdirectx_plugin.dll 66KB
libstream_out_transcode_plugin.dll 65KB
liba52tofloat32_plugin.dll 64KB
libvisual_plugin.dll 62KB
libdirect3d_plugin.dll 61KB
libvod_rtsp_plugin.dll 56KB
libblend_plugin.dll 55KB
libpanoramix_plugin.dll 54KB
libpacketizer_mpeg4audio_plugin.dll 53KB
libty_plugin.dll 53KB
libglwin32_plugin.dll 53KB
libmux_ogg_plugin.dll 52KB
libaudiobargraph_v_plugin.dll 52KB
libwingdi_plugin.dll 52KB
libmux_mp4_plugin.dll 51KB
libreal_plugin.dll 51KB
共 580 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
- wk88182012-06-19还是不错的,但不是源码
- MrJFC2014-04-08可以用,要是有版本说明就好了
- lushizhu2013-12-11可以用,不支持RTSP
- guanwangchai2012-07-26可以测试组播的,支持一下
- 101monster2012-11-15very good,我找好久,才找到全的
shvip
- 粉丝: 25
- 资源: 210
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功