VLC强大的地方。

最近比较忙,忙来忙去也不知道干了些什么
一直在了解 VLC 播放器方面的东西,目标是实现一个基于 VLC 的 Client ,
来播放 RTP / RTSP 的流媒体。

下面是我对这东西的个人理解,写下来免得以后糊涂了,也欢迎有兴趣的朋友来交流

关于 VLC ,这东西很 nb 。嗯
它可以:
1。播放除了rm 系列格式之外的所有视频。额,好吧是几乎所有。。
由于采用了plugin 的编解码器,它是能够扩展的。
2。可以播放不完整的视频文件,比如BT下了一半的电影。
3。可以方便的获取输入流媒体,并且输出。
VLC 的输入可以是本地视频,也可以是 mms 、rtsp 流媒体,或者是FTP上面的文件
甚至用 screen:// 你可以把你的屏幕当成输入。VLC 可以根据不同的输入调用不同的解码程序。
获得了输入并且解码了以后你可以选择显示视频到窗口(播放器)、存储到硬盘、或者输出到网络(点播)。
好吧。。你可以选择即显示视频又存储,或者输出给别的计算机。
嗯 是不是很乱。。比如说我有个avi格式的视频,我可以一边播放一边把他转换成mp4格式存到我的手机里,或者我有一部电影想给朋友看,怎么办?开FTP传么。。哦,用VLC你可以在自己浏览的同时通过 rtp 协议发送给你的朋友看。
额,的确比较乱,不过这也是VLC强大的地方。

要在程序中使用VLC的功能,据我所知有几个方法:
1。直接使用源码。。这个有点麻烦,在windows下编译VLC只能用 Mingw32 或者 Cygwin。
2。使用 libvlc.dll 。由于已经有了 source ,直接找到需要的函数的定义从 libvlc.dll 中导出相应功能即可。劳动量大,而且基于此开发的DD得遵守GPL。。
3。使用 ActiveX。VLC for windows 安装程序提供了axvlc.dll ,实现了 VLC 基本功能的封装。
初衷是为了能在web中调用VLC播放视频,所以对于一个控件浏览是没问题的,
但是要想在单个web页面同时浏览一路以上不同源的流媒体,会出现IE崩溃的问题(fixed in v0.9.0 Nightly Builds)。
对于在 App 中使用 ActiveX ,静态调用比较简单,嗯 。无论是 MFC 还是 VCL,在窗体上安置好控件后,封装好的对象都自动生成了。
关于 ActiveX 的动态调用 ,( 这个我还不是很熟。。)在 BCBuilder 中 IDE 会自动将 VLCPlugin 封装成 VCL控件 , 直接new即可,甚至不用手动delete。在VC中 先用MIDL生成wapper文件,如果是MFC中,用CWnd.CreateControl创建,如果是WINX、WTL,可以用ATL::CAxWindow.CreateControl创建(这种方式似乎有内存泄漏问题。至于SDK。。。好像是用用CreateWindow。
btw:0.8.6提供的ActiveX有些BUG,在BCB中如果new了两个以上的VLCPlugin ,动态delete掉一个,再创建就会出错,多个VLCPlugin 播放停止操作也会出问题(fixed in v0.9.0 Nightly Builds)。

现在初步用AxtiveX在BCBuilder做了个演示,正在考虑直接封装dll以获得更多功能。 
<think>好的,我现在需要回答用户关于如何在VLC媒体播放器中设置循环播放的问题。首先,我需要回忆VLC的相关功能,并参考用户提供的引用内容。用户提到了几个引用,其中引用[1]提到`vlc.playlist.play()`开始播放当前播放列表项,引用[3]提到`vlc.input.length`属性,可能和播放时长相关。此外,用户的问题是关于循环播放,可能需要设置播放模式为循环。 首先,我应该考虑VLC的不同循环模式,比如单文件循环或整个播放列表循环。根据经验,VLC在播放列表中有循环和单曲循环的选项。用户可能需要通过菜单设置或者命令行/API的方式实现。 接下来,查看用户提供的引用,引用[1]中的`vlc.playlist.play()`可能与播放控制有关,但不确定是否直接支持循环。引用[3]中的`vlc.input.length`属性可能用于检测当前媒体长度,但循环设置可能需要其他方法。引用[2]提到启用去隔行扫描,可能和视频处理有关,但和循环无关。引用[4]提到编解码器设置,似乎也不相关。 因此,可能需要结合常规操作步骤和API方法。常规操作的话,用户可以通过VLC的界面设置:播放菜单→循环,选择单曲循环或列表循环。对于通过API或脚本控制的情况,可能需要使用类似`vlc.playlist.loop`这样的属性,但用户提供的引用中没有直接提到循环相关的API,可能需要查阅更多资料。不过根据用户提供的引用,可能没有直接可用的API信息,所以可能需要指导用户使用界面设置或建议查看更详细的API文档。 另外,用户可能还想知道如何通过命令行参数启动循环播放,例如使用`--loop`参数。这也是常见的VLC命令行选项。 总结,回答应包括界面设置步骤、命令行方法,以及可能的API控制(如果有相关信息)。需要确保引用提供的资料中是否有相关内容。引用中没有直接说明循环设置,所以可能需要依赖一般知识,但如果有不确定的地方,应该注明。</think>### 如何在VLC中实现循环播放? #### 方法1:通过图形界面设置 1. **单文件循环**(重复播放当前文件): - 打开VLC,播放目标文件。 - 点击顶部菜单栏的 **播放** → **循环**,选择 **单曲循环**(默认快捷键为 `Ctrl+T`)。 - 此时播放进度条会变为“环形箭头”图标,表示已启用循环[^1]。 2. **播放列表循环**(重复整个列表): - 创建播放列表并添加多个文件。 - 点击 **播放** → **循环**,选择 **全部循环**。 - 播放列表结束时将自动从头开始。 --- #### 方法2:通过命令行参数 启动VLC时直接指定循环模式: - **单文件循环**: ```bash vlc --repeat your_file.mp4 ``` - **播放列表循环**: ```bash vlc --loop your_playlist.m3u ``` --- #### 方法3:通过API控制(适用于开发者) 若通过VLC的Web插件或脚本控制播放器,可使用以下属性: - **设置循环模式**: ```javascript vlc.playlist.repeat = 1; // 1为开启循环,0为关闭 ``` 结合播放列表操作接口`vlc.playlist.play()`可实现自动化控制[^3]。 --- #### 注意事项 - 若播放实时流媒体(如直播),`vlc.input.length`可能返回0,此时循环功能可能受限[^3]。 - 启用循环后,建议检查视频输出状态`vlc.input.hasVout`确保画面正常渲染。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值