<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Неофициальный форум DLNA Home Media Server &mdash; Задержка выполнения скрипта]]></title>
	<link rel="self" href="https://hms.lostcut.net/extern.php?action=feed&amp;tid=582&amp;type=atom" />
	<updated>2018-11-05T15:31:08Z</updated>
	<generator>PunBB</generator>
	<id>https://hms.lostcut.net/viewtopic.php?id=582</id>
		<entry>
			<title type="html"><![CDATA[Re: Задержка выполнения скрипта]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=13313#p13313" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>WendyH пишет:</cite><blockquote><p>Следующий код вызовет паузу в 3 сек:<br /></p><div class="codebox"><pre><code>HmsSleep(3000);</code></pre></div><p>Значение - время в миллисекундах.</p></blockquote></div><p>Спасибо, то, что надо.<br /></p><div class="quotebox"><cite>WendyH пишет:</cite><blockquote><p>Насчёт момента, когда срабатывает скрипт, а когда транскодирование.<br />Дело в том, что транскодирование - дело не моментальное. Пока наполнится буфер, пока начнёт отправляться на устройство, (если это подкаст и ссылка на файл в интернете - пока пройдёт соединение), всё это может быть ощущение, что скрипт запустился позже.</p></blockquote></div><p>Ход транскодирования видно в HMS в окне &quot;транскодирование&quot;, если ставлю задержку в скрипте обработки события запуска транскодирования, то транскодирование начинается с задержкой.</p><p>Могу более подробно объяснить.<br />При получении потока со спутникового ресивера есть несколько тонких моментов.</p><p>1. Поток имеет приоритет перед просмотром на ТВ (поток считается записью).<br />2. При переключении канала, когда идёт запись, переход ресивера к трансляции канала, на который произошло переключение, блокируется.<br />В результате, сначала идёт попытка переключения, потом, при взятии потока с ресивера, начинается трансляция по сети, но на ТВ ресивер уже не показывает. У меня сейчас 2 разных устройства с энигмой, оба ведут себя одинаково.<br />Есть 2 варианта : 1 - переключать канал с небольшой задержкой после начала сетевой трансляции, 2 - сначала ждать прекращения транскодирования по таймауту, потом переключать канал. Но тут тоже засада, таймаут нельзя ставить менее 15 сек., поскольку иначе ресивер не всегда успевает получить ключи для декодирования потока. В результате сейчас у меня таймаут прекразщения транскодирования 14 сек. и задержка 15 сек на событии начала воспроизведения, т.е. что бы переключить канал, надо ждать более 30 сек.</p><p>Вот такая засада.</p><p>Если бы не нужно было смотреть на телевизоре непосредственно с ресивера, а исключительно по сети, может и так бы сгодилось.</p>]]></content>
			<author>
				<name><![CDATA[fctsu001]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=1427</uri>
			</author>
			<updated>2018-11-05T15:31:08Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=13313#p13313</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Задержка выполнения скрипта]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=13305#p13305" />
			<content type="html"><![CDATA[<p>Следующий код вызовет паузу в 3 сек:<br /></p><div class="codebox"><pre><code>HmsSleep(3000);</code></pre></div><p>Значение - время в миллисекундах.</p><p>Насчёт момента, когда срабатывает скрипт, а когда транскодирование.<br />Дело в том, что транскодирование - дело не моментальное. Пока наполнится буфер, пока начнёт отправляться на устройство, (если это подкаст и ссылка на файл в интернете - пока пройдёт соединение), всё это может быть ощущение, что скрипт запустился позже.</p>]]></content>
			<author>
				<name><![CDATA[WendyH]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=2</uri>
			</author>
			<updated>2018-11-04T14:48:53Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=13305#p13305</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Задержка выполнения скрипта]]></title>
			<link rel="alternate" href="https://hms.lostcut.net/viewtopic.php?pid=13304#p13304" />
			<content type="html"><![CDATA[<p>При добавлении скрипта обработки к событию &quot;после начала воспроизведения медиа-ресурса&quot; сначала отрабатывает этот скрипт и затем запускается транскодирование. А есть ли какая то возможность запускать скрипт с задержкой уже после начала транскодирования, например, через секунду?</p><p>И есть ли стандартная функция для скриптов просто задержки?</p><p>Потому, как не нашёл стандартную HMS функцию для этой цели, для задержки вставляю:<br />Для скрипта в паскале:<br /></p><div class="codebox"><pre><code>      //вносим задержку
      b := Time + StrToTime(&#039;0:00:01&#039;);
      while b &gt; Time do;
      //конец задержки</code></pre></div><p>в паскале описание переменной добавляю к блоку описания.<br />Для скрипта на c++:<br /></p><div class="codebox"><pre><code>      //вносим задержку
      TTime b = Time + StrToTime(&#039;0:00:15&#039;);
      while (b &gt; Time); // пауза 15 сек.
      //конец задержки</code></pre></div>]]></content>
			<author>
				<name><![CDATA[fctsu001]]></name>
				<uri>https://hms.lostcut.net/profile.php?id=1427</uri>
			</author>
			<updated>2018-11-04T13:06:28Z</updated>
			<id>https://hms.lostcut.net/viewtopic.php?pid=13304#p13304</id>
		</entry>
</feed>
