<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Неофициальный форум DLNA Home Media Server &mdash; Lua скрипт для выбора файла в плейлисте в Ace_player (VLC)]]></title>
		<link>https://hms.lostcut.net/viewtopic.php?id=153</link>
		<atom:link href="https://hms.lostcut.net/extern.php?action=feed&amp;tid=153&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Lua скрипт для выбора файла в плейлисте в Ace_player (VLC)».]]></description>
		<lastBuildDate>Sat, 30 Jan 2016 14:33:29 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Lua скрипт для выбора файла в плейлисте в Ace_player (VLC)]]></title>
			<link>https://hms.lostcut.net/viewtopic.php?pid=3185#p3185</link>
			<description><![CDATA[<p>В общем, я практически сдался.<br />У меня не получается огранизовать воспроизведение конкретного (не первого) файла из плейлиста, используя aceplayer.exe для воспроизведения torrent файла.<br />Если тут будут спецы по lua и модулям для vlc, может кто-нибудь подскажет?</p><p>А проблема, как выясняется, проста до безобразия. При исполнении кода скрипта интерфейса, который мы указали в командной строке при запуске - плейлист пустой и не содержит информации о файлах.</p><p>Эксперименты провожу следующим образом:<br />Допустим, AcePlayer установлен в &quot;C:\Users\User\AppData\Roaming\ACEStream\player\ace_player.exe&quot;. <br />Есть файл test.torrent, в котором файлов несколько и они отображаются как плейлист, если запустить плеер указав это файл:<br /></p><div class="codebox"><pre><code>&quot;C:\Users\User\AppData\Roaming\ACESTR~1\player\ACE_PL~1.EXE&quot; --language en --no-auto-preparse --no-playlist-autostart --access=p2p_access &quot;test.torrent&quot;</code></pre></div><p>Странность №1: не срабатывает --no-playlist-autostart и, я подозреваю, --no-auto-preparse. Т.е. автоматически начинает играть первый файл.</p><p>Странность №2 следующая.<br />Кладём файл ts.lua с таким дурацким содержанием:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>vlc.playlist.sort( &#039;duration&#039; )

vlc.msg.info(&quot;torrentfile=&quot;    .. config.torrentfile)
vlc.msg.info(&quot;torrentsubfile=&quot; .. config.torrentsubfile)

pl = vlc.playlist.get(&quot;playlist&quot;)
n  = #pl.children

vlc.msg.info(&quot;playlist_name =&quot; .. pl.name)
vlc.msg.info(&quot;playlist_count=&quot; .. n)

for i, item in ipairs(pl.children) do

  vlc.msg.info(&quot;torrentsubfile=&quot; .. item.name)

end</code></pre></div></div></div><p>Этот скрипт выводит в консольное окно информацию о установленных переменных и содержание плейлиста.<br />Кладём его в папку &quot;C:\Users\User\AppData\Roaming\ACEStream\player\lua\intf\&quot;.</p><p>и пробуем запустить плеер с такими параметрами:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>&quot;C:\Users\User\AppData\Roaming\ACESTR~1\player\ACE_PL~1.EXE&quot; --language en --no-auto-preparse --no-playlist-autostart --extraintf=dummy -Iluaintf --lua-intf=ts --lua-config &quot;ts={torrentfile=&#039;test.torrent&#039;, torrentsubfile=&#039;08. Stiven_King_Plohoy_malshishka_06_192.mp3&#039;}&quot; --access=p2p_access &quot;test.torrent&quot;</code></pre></div></div></div><p>Где в параметрах мы указали использовать интерфейс ts.lua и задали пару значений в config для данного интерфейса.</p><p>Наш код в ts.lua успешно выполнится. Мы увидим в консольном окне наши надписи...<br />Да только команда vlc.playlist.get(&quot;playlist&quot;) возвращает всегда пустой плейлист.<br />vlc.playlist.get(&quot;root&quot;) или vlc.playlist.get() возвращает два плейлиста, &quot;Playlist&quot; и медиатеку. Но первый плейлист всегда пустой.</p><p>Как я понял, при использовании торрент файлов в aceplayer информация о файлах в плейлист попадает где-то позже.<br />Вопрос, как и где перехватить воспроизведение файла из плейлиста, чтобы спозиционировать и включить нужный файл?<br />Сделать lua скрипт и положить его в \lua\playlist\ не дало результатов. Он не исполняется.<br />Например такой тестовый дурацкий:<br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header" data-lang-open="открыть спойлер" data-lang-close="скрыть спойлер"><strong>+</strong>&nbsp;открыть спойлер</div><div class="fancy_spoiler"><div class="codebox"><pre><code>function probe()
    return true
end

function parse()
    playlist = {}

    while true do

       line = vlc.readline()

       if line == nil then
           break
       else 
           vlc.msg.info(&quot; Read line: &#039;&quot;..line..&quot;&#039;&quot;)
       end

       playlist_item = { path = line }

       table.insert( playlist, playlist_item )
    end

    return playlist
end</code></pre></div></div></div><p>Где-то я туплю и lua до этого не знал и с vlc близко так не был знаком. Вот бы кто подсказал.</p><p>Архив с файлами (test.torrent, test_ts.bat, ts.lua, tt.lua) для тестов приложил.</p>]]></description>
			<author><![CDATA[null@example.com (WendyH)]]></author>
			<pubDate>Sat, 30 Jan 2016 14:33:29 +0000</pubDate>
			<guid>https://hms.lostcut.net/viewtopic.php?pid=3185#p3185</guid>
		</item>
	</channel>
</rss>
