JS VLC插件

本文深入探讨了VLC媒体播放器的核心功能,包括版本信息查询、音频和视频属性调整、输入文件信息读取、播放列表管理、日志记录等,并详细分析了一个在处理TS文件时遇到的问题及其解决思路。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

VLClclc Plugin Object的方法

l        VersionInfo:成员, 返回版本信息的字符串

l        vlc.versionInfo():方法, 返回版本信息的字符串

 

Audio object的属性(读写)

l        vlc.audio.mute :静音和非静音

l        vlc.audio.volume:音量的百分比,值在0—200之间

l        vlc.audio.track:音轨信息,值在0-65535之间

l        vlc.audio.channel:值在1至5整数,指示的音频通道模式使用,值可以是:“1 =立体声”,“2 =反向立体声”,“3 =左”,“4 =右” “5 =混音”。

l        vlc.audio.toggleMute() : 方法,切换静音和非静音

 

Input object

只读属性

l        vlc.input.length:毫秒数,输入文件的长度

l        vlc.input.fps:每秒产生一个浮动帧

l        vlc.input.hasVout:一个布尔值,返回true当视频正在显示,它返回false时不显示视频

l        读/写属性

l        vlc.input.position:在多媒体流正常化的情况下,给定一个浮点值,值范围[0.0 - 1.0]

l        vlc.input.time:在给定的时间以毫秒为单位的绝对位置,这个属性可以用来寻求流

<!-- absolute seek in stream !-->

vlc.input.time = <absolute seek>

<!-- relative seek in stream !-->

vlc.input.time = vlc.input.time + <relative seek>

 

l        vlc.input.state:当前状态(空闲/关闭= 0,开幕= 1,缓冲= 2,打= 3,暂停= 4,停止= 5,错误= 6)

l        vlc.input.rate:输入速度,浮动的正常速度,0.5为速度的一半,为2.0快一倍。

 

 

Playlist object

只读属性

l        vlc.playlist.itemCount:目前播放列表中的项目的数量

l        vlc.playlist.isPlaying:一个布尔值,返回true 正在播放,false未播放

方法

l        vlc.playlist.add(mrl):添加一个mrl(多媒体资源定位器)播放列表项目。mrl必须为字符串。

l        vlc.playlist.add(mrl,name,options):添加mrl(多媒体资源定位器)播放列表项目,与meta的名字和选项。所有的输入值必须为字符串。

l        vlc.playlist.play():开始播放当前列表项

l        vlc.playlist.togglePause():切换当前播放列表项目的暂停状态

l        vlc.playlist.stop():停止播放当前播放列表项目

l        vlc.playlist.next():迭代到下一个播放列表项目

l        vlc.playlist.prev():迭代到以前的音乐项目

l        vlc.playlist.clear():清空当前播放列表,所有项目将被删除

l        vlc.playlist.removeItem(number):删除给定的项目编号(number不能比vlc.playlist.itemCount大)

 

 

 

Video object

只读属性

l        vlc.video.width:返回视频水平尺寸

l        vlc.video.height:返回视频垂直大小

读/写属性

l        vlc.video.fullscreen:当设置为true,视频将显示在全屏模式.设置为false时,视频按指定的大小显示。该属性需要布尔值作为输入。

l        vlc.video.aspectRatio:获取和设置长宽比使用视频屏幕。该属性采用字符串作为输入值。有效值为:“1:1”,“4:3”,“16:9”,“16:10”,“221:100”和“5:4”

方法

l        vlc.video.toggleFullscreen():全屏模式切换

Log object

只读属性

l        vlc.log.messages:返回一个消息对象

l        读/写属性

l        vlc.log.verbosity:写改变日志信息冗赘级别数[-1,0,1,2,3]。这些数字的含义如下:-1停用,0信息,1个错误,2警告,3调试。

Messages object

只读属性

l        messages.count:返回日志消息的数量

l        messages.severity:数字,日志信息的严重程度(0 =信息,1 =错误,2 =警告,3 =调试)

l        message.name:对VLC模块的名称印的日志信息(如:网址,directx,等等..)

l        message.type:对模块类型的vlc印日志信息(如:input, access, vout, sout,等等..)

l        message.message:消息文本

方法

l        messages.clear():清除当前日志缓冲区。

l        messages.iterator():返回一个消息迭代器对象

Iterator object

只读属性

l        iterator.hasNext:返回一个布尔值,表明还有下一个信息

方法

l        iterator.next():返回下一个消息对象它的日志。

VLC可以实现的功能

l        Vlc可以通过修改input属性,实现seek,快播,慢播

l        修改audio属性可以实现,声道设置、音量设置、静音

l        通过对video的设置,实现全屏\屏幕比例\屏幕大小的控制

l        通过PlayList对象的控制,可以实现添加、删除播放对象的功能

当前存在的问题问题描述

l        VLC对TS文件支持存在问题,VLC控件、获取不到时间进度信息.虽然视频已经播放了很久,但时间始终是0。见图1、图2:

图1:VLC windows版

 

图2:vlc 网页插件版

分体分析

l        VLC的input属性未能正常获取fps和time的值

导致结果

l        结束时间无法控制

l        进度条失效
### 修改VLC插件的播放地址 要在HTML页面中通过VLC插件修改播放地址,可以通过调整`<object>`标签中的参数来实现。具体来说,可以动态设置`mrl`参数的值,该参数用于指定媒体资源定位符(MRL),即播放的文件路径或流地址。 以下是详细的说明: #### HTML代码结构 在HTML中嵌入VLC插件时,通常会使用`<object>`标签,并在其内部定义多个`<param>`子标签。其中,`name='mrl'`的参数决定了播放的内容。如果需要更改播放地址,则只需更新此参数的`value`属性即可[^3]。 示例代码如下: ```html <object type="application/x-vlc-plugin" id="vlc" width="800" height="600"> <param name="mrl" value="rtsp://example.com/stream" /> </object> ``` #### 使用JavaScript动态修改播放地址 为了实现在运行时动态修改播放地址的功能,可以借助JavaScript访问DOM对象并更新其属性。假设已为VLC插件设置了ID为`vlc`的对象实例,那么可以通过以下方式完成操作: ```javascript // 获取VLC插件对象 var vlcObject = document.getElementById('vlc'); // 设置新的RTSP地址 if (vlcObject !== null && typeof vlcObject.SetMedia === 'function') { var newAddress = "rtsp://newstreamaddress.example.com"; vlcObject.SetMedia(newAddress); // 调用SetMedia方法加载新地址 } else { console.error("无法找到VLC插件对象或不支持SetMedia方法"); } ``` 这里需要注意的是,在某些情况下可能还需要重新初始化插件或者触发刷新事件以应用更改后的地址[^4]。 #### 浏览器兼容性注意事项 由于现代主流浏览器逐渐停止对NPAPI插件的支持,因此基于此类技术构建的应用程序可能会面临兼容性问题。例如Google Chrome自第45版之后便不再允许大多数NPAPI插件运行;而Microsoft Edge则从未提供过对此类传统ActiveX控件的支持[^3]。所以建议测试环境限定于Internet Explorer及其衍生产品如360安全浏览器等仍保留对该标准部分实施能力的产品之上。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值