[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Real-time
Гость_Дмитрий
Простите, если я не туда обратился, но в самом деле не знаю, к какой теме, и даже к какому языку может относиться искомая информация. Я еще учусь smile.gif

Задача состоит в том, чтобы при загрузке страницы автоматически загружались куда-нибудь во временную папку клиента несколько мультимедиа-файлов (небольших MIDI, Kb 20-30), и потом они могли воспроизводиться по нажатию элементов страницы, или по заданным в скрипте периодам времени. Важно, чтобы файлы находились уже на клиентском компьютере, и запускались практически мгновенно, задержка не должна превысить полсекунды. Как вы думаете, в какой области искать такой алгоритм?
Я еще не умею скачивать файлы с сервера, не знаю как, например, в скрипте задать момент для запуска файла на воспроизведение, и как этот момент потом отследить и не упустить. В-общем, ничего не умею smile.gif Вероятно, это должен быть скрипт Java, если я что-то понимаю... В-общем, направьте меня, пожалуйста, носом в нужную сторону!



Спустя 1 минута, 13 секунд (7.04.2009 - 18:54) Гость_Дмитрий написал(а):
Простите, если я не туда обратился, но в самом деле не знаю, к какой теме, и даже к какому языку может относиться искомая информация. Я еще учусь smile.gif

Задача состоит в том, чтобы при загрузке страницы автоматически загружались куда-нибудь во временную папку клиента несколько мультимедиа-файлов (небольших MIDI, Kb 20-30), и потом они могли воспроизводиться по нажатию элементов страницы, или по заданным в скрипте периодам времени. Важно, чтобы файлы находились уже на клиентском компьютере, и запускались практически мгновенно, задержка не должна превысить полсекунды. Как вы думаете, в какой области искать такой алгоритм?
Я еще не умею скачивать файлы с сервера, не знаю как, например, в скрипте задать момент для запуска файла на воспроизведение, и как этот момент потом отследить и не упустить. В-общем, ничего не умею smile.gif Вероятно, это должен быть скрипт Java, если я что-то понимаю... В-общем, направьте меня, пожалуйста, носом в нужную сторону!

Спустя 23 минуты, 39 секунд (7.04.2009 - 19:18) ADiel написал(а):
файлы нельзя заливать на клиентские компы. прочитай про клиент - серверные системы. Лучше использовать фоновую музыку средствами хтмл.

Спустя 1 час, 58 минут, 7 секунд (7.04.2009 - 21:16) FatCat написал(а):
Цитата (ADiel @ 7.04.2009 - 19:18)
файлы нельзя заливать на клиентские компы. прочитай про клиент - серверные системы.

Можно залить в кеш браузера, кто запретит?
Как Вы думаете, в чате звук событий реализовывается?
HTML
<script type="text/javascript">
function play(snd_file){
eval('try{window.parent.document.'+snd_file+'.Play();}catch(e){}')
}
</script>
<div style="position:absolute;top:-1000;"><embed src="http://vesvalo.net/chat/sounds/msg.mid" autostart="false" enablejavascript="true" width="0" height="0" controls="false" volume="100" name="snd_msg"></embed>
<embed src="http://vesvalo.net/chat/sounds/enter.mid" autostart="false" enablejavascript="true" width="0" height="0" controls="false" volume="100" name="snd_enter"></embed>
<embed src="http://vesvalo.net/chat/sounds/you.mid" autostart="false" enablejavascript="true" width="0" height="0" controls="false" volume="100" name="snd_you"></embed>
</div>
<ul>
<li><a href="javascript:;" onclick="javascript:play('snd_msg')">msg.mid</a></li>
<li><a href="javascript:;" onclick="javascript:play('snd_enter')">enter.mid</a></li>
<li><a href="javascript:;" onclick="javascript:play('snd_you')">msg.you</a></li>
</ul>


Спустя 4 минуты, 41 секунда (7.04.2009 - 21:21) FatCat написал(а):
А вот этот код в действии:

Спустя 18 часов, 41 минута, 53 секунды (8.04.2009 - 16:03) Гость_Дмитрий написал(а):
Да-да, меня более чем устроило бы сохранять файлы виртуально, а не на диске, только на время просмотра страницы. Но фоновое звучание не нужно, нужно его запускать только в требуемый момент или по требуемому действию пользователя - зато запускать мгновенно.

Скрипт скопировал себе, сейчас поиграюсь с ним. А примеры "в действии" почему-то не воспроизводятся. В настройках броузера вроде бы ничего похожего не запрещается, не знаю, в чем там дело...

Спустя 35 минут, 9 секунд (8.04.2009 - 16:38) Guest написал(а):
Не-а, не получается! Броузер сообщает об ошибке на странице, а ее описание гласит, что на такой-то строке ожидается наличие объекта. Фиг знает...
Я соорудил как быстраничку с Вашим кодом, поместил с нею в одну папку пару файлов и указал в скрипте их имена (и путь, конечно, локальный вместо HTTP). Реакция точно такая же. Ни автостарт, ни "controls" - ничто не реагирует. Хм...
У меня есть большущий учебник по JS (в эл.виде) - так там, оказеывается, ни разу не упоминается слово "Play". Куда же тыркаться-то, чтобы научиться?

Спустя 1 час, 56 минут, 30 секунд (8.04.2009 - 18:34) FatCat написал(а):
Цитата (Guest @ 8.04.2009 - 16:38)
Не-а, не получается!

Браузер какой?
Работает (проверял) в ИЕ6 и в Опере 9.х, Лисе 2.0
Не работает (проверял) в Опере 8.х

Спустя 17 минут, 1 секунда (8.04.2009 - 18:51) FatCat написал(а):
Цитата (Гость_Дмитрий @ 8.04.2009 - 16:03)
Но фоновое звучание не нужно, нужно его запускать только в требуемый момент или по требуемому действию пользователя - зато запускать мгновенно.

Это возможно; невозможно останавливать после первого проигрывания.

Посмотрите на www.daopharm.ru мой скрипт музыкального сопровождения в верху страницы. Музыка запускается только по клику, но звучать будет до тех пор, пока пользователь явно кликом не остановит. Хотя, можно сделать автостоп тем же джаваскриптом по таймеру.

Предзагрузку в кеш можно сделать просто:
В тексте страницы сначала див, затем джаваскрипт: первая команда создает в этом диве тег фонового звучания, вторая тут же удаляет: файл пошел загружаться, но к моменту загрузки в кеш тега звучания уже не будет.

Спустя 18 часов, 18 минут, 10 секунд (9.04.2009 - 13:10) Guest написал(а):
Ага, Ваша ссылка заиграла (тихонько правда smile.gif ) Очень здорово, что никакой проигрыватель на глаза не показывается. Возможности по управлению (запустить-остановить) для моей цели достаточны. Сейчас буду рассматривать и "втыкаться" внимательно, спасибо.

Еще, если позволите, вопрос. Кэш броузера - это область памяти или физически занимаемое место на диске?
Правильно ли я понимаю, что музыка скачивается при заходе на страницу, а не при запуске воспроизведения?. Т.е., я могу загрузить свои несколько файлов, чтобы они были в любой момент "под рукой", и потом запускать-останавливать любой из них, уже не обращаясь к серверу?

Спустя 4 часа, 10 минут, 11 секунд (9.04.2009 - 17:20) Guest написал(а):
Повозился. Играет и локально тоже, это радует. Не удалось решить один вопрос - работа без запросов к серверу. Мне так представлялось, чтоб требуемый набор файлов скачается при входе на страницу, и потом пользователь, запуская ту или иную функцию JS, слушает тот или иной файл, не ощущая задержки времени из-за подкачки музыки с сервера. Локально, испытывая дома со своим сервером, этой задержки не ощущается, понятно. И чтобы узнать, обращается ли броузер за музыкой на сервер, я поступил довольно нагло: запустив страницу, удалил MIDI-файл из папок сервера. Ну и что? Не играет, скотина!
Что ж придумать, чтобы избежать задержки времени, а? У меня задача - учебный музыкальный сайт. Там постоянно будет требоваться слышать крошечные фрагменты, но слышать моментально, оперативно, это важно...

Спустя 4 часа, 40 минут, 29 секунд (9.04.2009 - 22:00) FatCat написал(а):
Цитата (Guest @ 9.04.2009 - 17:20)
Не удалось решить один вопрос - работа без запросов к серверу.

Сделайте предзагрузку. Например однопиксельными картинками.
HTML
<img src="http://daopharm.ru/opr0DZTN.mid" width=1 height=1 border=0>

В качестве дополнительной предосторожности, можно вынести их заведомо за перделы страницы, например так:
HTML
<img src="http://daopharm.ru/opr0DZTN.mid" width=1 height=1 border=0 style="position: absolute;top:-100000;">

Спустя 2 часа, 13 минут, 36 секунд (10.04.2009 - 00:14) Guest написал(а):
Ух ты. Мне бы и в голову не пришло, что Эксплореру настолько наплевать на формат данных. Что же он, интересно, нарисует, если задать видимые размеры... неужели не обидится? Надо попробовать.

Да, а как же потом эти "картинки" запустить-то, они же (если верить книжкам) только с мышкой взаимодействуют?

Спустя 21 час, 7 минут, 39 секунд (10.04.2009 - 21:21) Guest написал(а):
Не, не могу нигде найти намека, как скриптом извлечь файл, загруженный в <IMG>...

Спустя 1 час, 15 минут, 22 секунды (10.04.2009 - 22:37) FatCat написал(а):
Цитата (Guest @ 10.04.2009 - 00:14)
Мне бы и в голову не пришло, что Эксплореру настолько наплевать на формат данных.

Ему не наплевать на формат данных, ему плевать на имя файла и расширение.
Сказано рисунок - он загрузит в кеш. Увидет что нет изображения, и ничего не нарисует, но файл-то в кеше останется.
А дальше скрипт работает с файлом из кеша.

Вот полный код:
HTML
<img src="http://daopharm.ru/opr0DZTN.mid" width=1 height=1 border=0 style="position: absolute;top:-100000;">
<div id="snd1"></div>
<script type="text/javascript" language="JavaScript">
function playsound(){
snd1.innerHTML='<a href="javascript:;" onclick="javascript:stopsound()" class=music>Выключить музыкальное сопровождение</a><BGSOUND balance=0 src="http://daopharm.ru/opr0DZTN.mid" volume=0 loop=infinite>'
}

function stopsound(){
snd1.innerHTML='<a href="javascript:;" onclick="javascript:playsound()" class=music>Включить музыкальное сопровождение</a>'
}

stopsound()
</script>

Спустя 51 минута, 34 секунды (10.04.2009 - 23:28) sergeiss написал(а):
FatCat - я в такие "тонкости" не вникал, спасибо за инфо smile.gif

Спустя 22 часа, 11 минут, 9 секунд (11.04.2009 - 21:40) Guest написал(а):
Аха... то есть, если Эксплорер обнаружит, что запрашиваемый скриптом ради звука файл имеет то же имя-расширение, что и хранящийся в кэше, то он не станет обращаться к серверу, а возьмет из кэша (пусть даже файл попал туда совершенно по другому поводу), так? Картинка не обязана находиться в теге <DIV>, достаточно только, чтобы к моменту запуска функции JS она была хоть раз описана в HTML-фрагменте страницы. Все правильно понимаю?
Дело в том, что мне хочется не только сделать свою задачу, но и прочувствовать, понять принцип исчерпывающе. Что с чем и как взаимодействует. Правльно это я описал, или как?

Так. Кэш - предполагаю - это все-таки дисковый файл где-то в недрах директории Windows, и этот файл вовсе не обязан уничтожаться при закрытии броузера. Теоретически содержимое кэша остается доступным и после этого. Правильно? Или это только область памяти, которая очищается при закрытии программы?

... вот пристал-то, как банный лист. Извините, конечно. Ну охота до самых мелочей "прожевать" все, с чем сталкиваюсь, такая у меня манера по жизни...

Спустя 1 час, 51 минута, 53 секунды (11.04.2009 - 23:31) FatCat написал(а):
Правильно понимаете.

Цитата (Guest @ 11.04.2009 - 21:40)
эш - предполагаю - это все-таки дисковый файл где-то в недрах директории Windows

Если для интернет-эксплорера, то обычно несколько директорий в C:\Documents and Settings\Пользователь\Local Settings\Temporary Internet Files\Content.IE5\
По умолчанию директории скрытые, для просмотра нужно изменить свойства папки или воспользоваться торонними программами, например тотал-командером.


Цитата (Guest @ 11.04.2009 - 21:40)
Теоретически содержимое кэша остается доступным и после этого. Правильно?

Зависит от настроек кеширования. Как правило, остается.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.