在VLC/Lua中建立一个播放列表,以控制每个媒体文件的播放选项
2017-5-23 10:30:42
收藏:0
阅读:132
评论:2
我有一个包含视频文件的播放列表。对于每个播放列表项,我想使用Lua脚本控制播放列表模式,以确定每个轨道是否应该“重复播放”,“播放并停止”等等。
file:///data/video1.mp4,repeat
file:///data/video2.mp4,play-and-stop
目的是某些视频轨道应该无限重复,直到用户手动切换到下一个轨道。播放列表中的其他轨道应该播放一次,然后前进到下一个轨道,或者播放并停止,等待用户交互才能再次播放。
我目前有以下代码,改编自这里,但我无法将播放列表选项应用于每个轨道,因为它们适用于整个播放列表。我该如何扩展我的脚本来实现这一点?
function probe()
return string.match(vlc.path, "%.myplaylist$")
end
function parse()
playlist = {}
while true do
playlist_item = {}
line = vlc.readline()
if line == nil then
break
-- 将播放列表行解析为两个标记,以逗号分隔
values = {}
i=0
for word in string.gmatch(line, '([^,]+)') do
values[i]=word
i=i+1
end
playlist_item.path = values[0]
playback_mode = values[1]
playlist_item.options = {}
table.insert(playlist_item.options, "fullscreen")
table.insert(playlist_item.options, playback_mode)
-- 将项目添加到播放列表
table.insert( playlist, playlist_item )
end
return playlist
end
将“视频选项”添加到playlist_item.options中是有效的,但按轨道添加“播放列表选项”则无效。我不确定该如何继续,因为我只能返回整个播放列表。
点赞
用户4892053
如果您感兴趣,您可以通过在VLC中创建播放列表并将其保存为XSPF文件来解决重复问题。接着,您需要使用记事本编辑该文件,将以下内容添加到要重复的音轨的扩展标签中:
<vlc:option>input-repeat=9999</vlc:option>
例如:
<track>
<location>file:///C:/Users/Notebook/Desktop/17-LOOP.mp4</location>
<duration>10048</duration>
<extension application="http://www.videolan.org/vlc/playlist/0">
<vlc:id>1</vlc:id>
<vlc:option>input-repeat=9999</vlc:option>
</extension>
</track>
这样做后,播放列表中播放该文件时会重复播放9999次(如果该文件太短,您可以更改此数值),或者直到您按下“下一首”。然后,播放列表将继续播放。
2019-09-27 16:27:48
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

给定自定义播放列表
file:///data/video1.mp4,repeat file:///data/video2.mp4,play-once我通过向曲目元数据添加重复/播放一次信息完成了上面原始问题中的播放列表脚本。
playlist_item.meta = { ["Playback mode"] = playback_mode }最后一步是创建一个扩展(类似于歌曲跟踪器扩展),它侦听
input_changed事件并使用“播放模式”曲目元数据相应地切换vlc.playlist.repeat_()。function activate() update_playback_mode() end function input_changed() update_playback_mode() end function update_playback_mode() if vlc.input.is_playing() then local item = vlc.item or vlc.input.item() if item then local meta = item:metas() if meta then local repeat_track = meta["Playback mode"] if repeat_track == nil then repeat_track = false elseif string.lower(repeat_track) == "repeat" then repeat_track = true else repeat_track = false end local player_mode = vlc.playlist.repeat_() -- as required 切换播放列表.repeat_() if player_mode and not repeat_track then vlc.playlist.repeat_() elseif not player_mode and repeat_track then vlc.playlist.repeat_() end return true end end