<?
include_once '../../sys/inc/start.php';
include_once '../../sys/inc/compress.php';
include_once '../../sys/inc/sess.php';
include_once '../../sys/inc/home.php';
include_once '../../sys/inc/settings.php';
include_once '../../sys/inc/db_connect.php';
include_once '../../sys/inc/ipua.php';
include_once '../../sys/inc/fnc.php';
include_once '../../sys/inc/user.php';
$set['title']='Учебник JavaScript';
include_once '../../sys/inc/thead.php';
title();
err();
//aut();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<phpl<TITLE>LiveAudio и LiveConnect</TITLE>
<BODY>
<h5><a href="contents.php">Оглавление</a> | <a href="lc.php">Назад</a>
| <a href="partapp.php">Вперёд</a> | <a href="bklast.php">Индекс</a></h5><HR><h1>Глава 16<BR>
<A NAME="1020017"></a>LiveAudio и LiveConnect</h1><p><A NAME="1020056"></a>
LiveAudio работает с LiveConnect. Используя LiveConnect, LiveAudio и JavaScript, 
событие, которое может быть описано программно с использованием среды JavaScript, 
может включать звуковое событие. Например, Вы можете создать альтернативный 
интерфейс управления звуком, задержать загрузку sound-файла, пока пользователь 
не щёлкнул кнопку, создать кнопку, производящую шум при щелчке по ней, или 
создать звуковое подтверждения для действий интерфейса (заставить объект "проговаривать" 
свои действия при щелчке мыши или перемещении над ним курсора). В этой главе 
описано, как использовать JavaScript для управления встроенными LiveAudio-элементами.</p>
<p><A NAME="1020230"></a>В главе имеются следующие разделы:</p><ul><LI><A NAME="1020231"></a>
<A HREF="#1020064">JavaScript-методы для управления LiveAudio</a></LI><LI><A NAME="1020232"></a>
<A HREF="#1020098">Использование LiveAudio LiveConnect-методов</a></LI></ul>
<H2><A NAME="JavaScript Methods for Controlling LiveAudio"><A NAME="1020064"></a>
JavaScript-методы для управления LiveAudio</H2><hr><p><A NAME="1020065"></a>
LiveAudio предоставляет следующие JavaScript-методы управления. Чтобы эти методы 
были доступны для JavaScript (и на web-странице), Вы обязаны внедрить LiveAudio-консоль (всё, 
что эта консоль&nbsp; будет выполнять, она может даже быть скрыта) где-нибудь на странице.</p>
<ul><LI><A NAME="1020067"></a><CODE>play({loop[TRUE, FALSE or an INT]}, '{url_to_sound}')</CODE></LI><LI><A NAME="1020069"></a>
<CODE>pause()</CODE></LI><LI><A NAME="1020071"></a><CODE>stop()</CODE></LI><LI><A NAME="1020073"></a>
<CODE>StopAll()</CODE></LI><LI><A NAME="1020075"></a><CODE>start_time({number of seconds})</CODE></LI><LI><A NAME="1020077"></a>
<CODE>end_time({number of seconds})</CODE></LI><LI><A NAME="1020079"></a><CODE>setvol({percentage number - without "%" sign})</CODE></LI><LI><A NAME="1020081"></a>
<CODE>fade_to({volume percent to fade to, without the "%"})</CODE></LI><LI><A NAME="1020083"></a>
<CODE>fade_from_to({volume % start fade}, {volume % end fade})</CODE></LI><LI><A NAME="1020085"></a>
<CODE>start_at_beginning()</CODE></LI><LI><A NAME="1020087"></a><CODE>stop_at_end()</CODE></LI></ul>
<p><A NAME="1020088"></a>Следующие JavaScript-методы индикации состояния не управляют LiveAudio plug-in'ом, 
но предоставляют информацию о текущем состоянии plug-in'а:</p><ul><LI><A NAME="1020090"></a>
<CODE>IsReady</CODE></LI><LI><A NAME="1020092"></a><CODE>IsPlaying</CODE></LI><LI><A NAME="1020094"></a>
<CODE>IsPaused</CODE></LI><LI><A NAME="1020096"></a><CODE>GetVolume</CODE></LI></ul>
<H2><A NAME="Using the LiveAudio LiveConnect Methods"><A NAME="1020098"></a>
Использование LiveAudio LiveConnect-методов</H2><hr><p><A NAME="1020099"></a>
В качестве пример использования JavaScript для управления LiveAudio plug-in'ом 
можно заставить JavaScript воспроизводить звук. В следующем примере дан весь HTML, необходимый для этого.</p>
<PRE><A NAME="1020100"></a>&lt;HTML&gt;<br>&lt;BODY&gt;</PRE><PRE><A NAME="1020101"></a>&lt;EMBED SRC="sound1.wav"<br>&nbsp;&nbsp;&nbsp;HIDDEN=TRUE&gt;</PRE><PRE><A NAME="1020102"></a>&lt;A HREF="javascript:document.embeds[0].play(false)"&gt;<br>Play the sound now!&lt;/A&gt;</PRE><PRE><A NAME="1020103"></a>&lt;/BODY&gt;<br>&lt;/HTML&gt;</PRE>
<p><A NAME="1020104"></a>Вышеприведённый метод воспроизведения звукового файла, возможно, простейший, но 
может создать много проблем. Например, если Вы используете массив <CODE>document.embeds</CODE>, JavaScript 1.0 
будет генерировать ошибку, поскольку массив <CODE>embeds</CODE> является 
элементом из JavaScript 1.1. Вместо использования массива <CODE>embeds</CODE> Вы 
можете идентифицировать тэг <CODE>&lt;EMBED&gt;</CODE>, который Вы хотите 
использовать в JavaScript, через использование атрибутов <CODE>NAME</CODE> и <CODE>MASTERSOUND</CODE> 
в оригинальном тэге <CODE>&lt;EMBED&gt;</CODE>:</p>
<PRE><A NAME="1020105"></a>&lt;HTML&gt;<br>&lt;BODY&gt;</PRE><PRE><A NAME="1020106"></a>&lt;EMBED SRC="sound1.wav"<br>&nbsp;&nbsp;&nbsp;HIDDEN=TRUE<br>&nbsp;&nbsp;&nbsp;NAME="firstsound"<br>&nbsp;&nbsp;&nbsp;MASTERSOUND&gt;</PRE><PRE><A NAME="1020107"></a>&lt;A HREF="javascript:document.firstsound.play(false)"&gt;<br>Play the sound now!&lt;/A&gt;</PRE><PRE><A NAME="1020108"></a>&lt;/BODY&gt;<br>&lt;/HTML&gt;</PRE>
<p><A NAME="1020109"></a>Это значительно более внятный способ описания Вашего plug-in'а 
в JavaScript, который может значительно уменьшить путаницу. Если, например, у 
Вас имеются несколько звуков, внедрённых в HTML-документ, разработчику может 
быть легче использовать атрибут <CODE>NAME</CODE>, чем массив <CODE>embeds</CODE>. 
В предыдущем примере можно видеть, что используется атрибут <CODE>MASTERSOUND</CODE> 
в тэге <CODE>&lt;EMBED&gt;</CODE>. Это сделано, потому что в любой момент, когда 
атрибут <CODE>NAME</CODE> используется для обращения к LiveAudio, 
соответствующий тэг с атрибутом <CODE>MASTERSOUND</CODE> также обязан быть предоставлен.</p><p><A NAME="1020110"></a>
Другой известный пример использования LiveConnect и LiveAudio - задержка 
загрузки звука до тех пор, пока пользователь не щёлкнет кнопку "play". Это делается так:</p>
<PRE><A NAME="1020111"></a>&lt;HTML&gt;<br>&lt;HEAD&gt;<br>&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br>&lt;!-- Скрываем JavaScript от старых браузеров</PRE><PRE><A NAME="1020112"></a>function playDeferredSound() {<br>&nbsp;&nbsp;&nbsp;document.firstsound.play(false,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'http://url_to_new_sound_file/sound1.wav');<br>}</PRE><PRE><A NAME="1020113"></a>// --&gt;<br>&lt;/SCRIPT&gt;</PRE><PRE><A NAME="1020114"></a>&lt;/HEAD&gt;<br>&lt;BODY&gt;</PRE><PRE><A NAME="1020115"></a>&lt;EMBED<br>&nbsp;&nbsp;&nbsp;SRC="stub1.wav"<br>&nbsp;&nbsp;&nbsp;HIDDEN=TRUE<br>&nbsp;&nbsp;&nbsp;NAME="firstsound"<br>&nbsp;&nbsp;&nbsp;MASTERSOUND&gt;</PRE><PRE><A NAME="1020116"></a>&lt;A HREF="javascript:playDeferredSound()"&gt;Load and play the sound&lt;/A&gt;</PRE><PRE><A NAME="1020117"></a>&lt;/BODY&gt;<br>&lt;/HTML&gt;</PRE>
<p><A NAME="1020118"></a>Файл-заглушка <CODE>stub1.wav</CODE> загружается сравнительно быстро. (Описание 
создания stub-файла см. на EmeraldNet LiveAudio <CODE><A HREF="http://emerald.net/liveaudio/" TARGET="_top">http://emerald.net/liveaudio/</a></CODE>.) 
Метод <CODE>play</CODE> загружает sound-файл только при его (метода) вызове. В 
этом примере sound-файл загружается только в том случае, если пользователь хочет его прослушать.</p>
<p><A NAME="1020121"></a>Web-дизайнерам может понадобиться создать совершенно новый интерфейс с помощью 
LiveConnect LiveAudio.<br>Для создания альтернативной консоли для проигрывания звуков дизайнер может сделать следующее:</p>
<PRE><A NAME="1020122"></a>&lt;HTML&gt;<br>&lt;HEAD&gt;</PRE><PRE><A NAME="1020123"></a>&lt;SCRIPT LANGUAGE="JavaScript"&gt;<br>&lt;!-- Прячем JavaScript от старых браузеров</PRE><PRE><A NAME="1020124"></a>function playSound() {<br>&nbsp;&nbsp;&nbsp;document.firstSound.play(false);<br>}</PRE><PRE><A NAME="1020125"></a>function pauseSound() {<br>&nbsp;&nbsp;&nbsp;document.firstSound.pause();<br>}</PRE><PRE><A NAME="1020126"></a>function stopSound() {<br>&nbsp;&nbsp;&nbsp;document.firstSound.stop();<br>}</PRE><PRE><A NAME="1020127"></a>function volup() {<br>&nbsp;&nbsp;&nbsp;currentVolume = document.firstSound.GetVolume();<br>&nbsp;&nbsp;&nbsp;newVolume = (currentVolume + 10);</PRE><PRE><A NAME="1020128"></a>&nbsp;&nbsp;&nbsp;if (document.firstSound.GetVolume() == 100) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("Volume is already at maximum");<br>&nbsp;&nbsp;&nbsp;}</PRE><PRE><A NAME="1020129"></a>&nbsp;&nbsp;&nbsp;if (newVolume &lt; 90) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.firstSound.setvol(newVolume);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((newVolume &lt;= 100) &amp;&amp; (newVolume &gt; 90)) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.firstSound.setvol(100);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;}<br>}</PRE><PRE><A NAME="1020130"></a>function voldown() {<br>&nbsp;&nbsp;&nbsp;currentVolume = document.firstSound.GetVolume();<br>&nbsp;&nbsp;&nbsp;newVolume = (currentVolume - 10);</PRE><PRE><A NAME="1020131"></a>&nbsp;&nbsp;&nbsp;if (document.firstSound.GetVolume() == 0) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("Volume is already at minimum");<br>&nbsp;&nbsp;&nbsp;}</PRE><PRE><A NAME="1020132"></a>&nbsp;&nbsp;&nbsp;if (newVolume &gt; 10) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.firstSound.setvol(newVolume);<br>&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;else {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ((newVolume &gt;= 0) &amp;&amp; (newVolume &lt; 10)) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.firstSound.setvol(0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;}<br>}</PRE><PRE><A NAME="1020133"></a>// --&gt;<br>&lt;/SCRIPT&gt;<br>&lt;/HEAD&gt;</PRE><PRE><A NAME="1020134"></a>&lt;BODY&gt;</PRE><PRE><A NAME="1020135"></a>&lt;EMBED <br>&nbsp;&nbsp;&nbsp;SRC="sound1.wav"<br>&nbsp;&nbsp;&nbsp;HIDDEN=TRUE<br>&nbsp;&nbsp;&nbsp;AUTOSTART=FALSE<br>&nbsp;&nbsp;&nbsp;NAME="firstSound"<br>&nbsp;&nbsp;&nbsp;MASTERSOUND&gt;</PRE><PRE><A NAME="1020136"></a>&lt;P&gt;&lt;A HREF="javascript:playSound()"&gt;Play the sound now!&lt;/A&gt;&lt;/P&gt;<br>&lt;P&gt;&lt;A HREF="javascript:pauseSound()"&gt;Pause the sound now!&lt;/A&gt;&lt;/P&gt;<br>&lt;P&gt;&lt;A HREF="javascript:stopSound()"&gt;Stop the sound now!&lt;/A&gt;&lt;/P&gt;<br>&lt;P&gt;&lt;A HREF="javascript:volup()"&gt;Increment the Volume!&lt;/A&gt;&lt;/P&gt;<br>&lt;P&gt;&lt;A HREF="javascript:voldown()"&gt;Decrement the Volume!&lt;/A&gt;&lt;/P&gt;</PRE><PRE><A NAME="1020137"></a>&lt;/BODY&gt;<br>&lt;/HTML&gt;</PRE>
<p><A NAME="1020138"></a>Здесь проиллюстрировано, как Вы можете создать Ваш собственный метод управления sound-файлом. 
Возможности здесь поистине безграничны; Вы можете использовать изображения и 
обработчики <CODE>onClick</CODE> для симуляции Вашего собственного sound-плэйера.</p>
<h5><a href="contents.php">Оглавление</a> | <a href="lc.php">Назад</a>
| <a href="partapp.php">Вперёд</a> | <a href="bklast.php">Индекс</a></h5>
<hr></BODY></HTML>
<?
include_once '../../sys/inc/tfoot.php';
?>