Загрузка и проигрывание звуковых файлов
Работа со звуковыми файлами во многом
напоминает работу с растровыми графическими
файлами. Вначале вы должны получить ссылку на
интерфейс AudioClip, а затем, пользуясь его методами,
вы сможете выполнять проигрывание содержимого
этого файла.
Для получения интерфейса AudioClip вы должны
воспользоваться одним из двух вариантов метода
getAudioClip, определенных в классе Applet:
public AudioClip
getAudioClip(URL url):
public AudioClip
getAudioClip(URL url, String name);
Первый вариант метода предполагает указание
адреса URL звукового файла через единственный
параметр, второй допускает раздельное указание
адреса URL каталога, содержащего файл, и имени
файла.
В документации на метод getAudioClip сказано, что
этот метод фактически не выполняет загрузку
звуковых данных, а только возвращает ссылку на
интерфейс AudioClip и немедленно возвращает
управление. Загрузка звуковых данных
выполняется методами, предназначенными для
проигрывания файла.
Однако в книге "The Java Tutorial. Object-Oriented Programming for the
Internet", подготовленной специалистами группы
JavaSoft, утверждается, что текущие реализации Java
работают по другому: метод getAudioClip возвращает
управление только после завершения загрузки
звукового файла. Очевидно, вам не стоит
полагаться на то, что так будет всегда. В тех
случаях, когда нежелательно блокирование работы
аплета на время загрузки звукового файла,
загрузку и проигрывание следует выполнять в
отдельном потоке.
Интерфейс AudioClip определен следующим образом:
public interface java.applet.AudioClip
{
public abstract void play();
public abstract void loop();
public abstract void stop();
}
Метод play запускает однократное проигрывание
звукового файла, которое выполняется от начала
файла и до его конца.
Метод loop запускает проигрывание звукового
файла в цикле, которое будет продолжаться до тех
пор, пока вы не остановите его, вызвав метод stop.
Метод stop, как нетрудно догадаться из его
названия, останавливает проигрывание звукового
файла, как однократное, так и выполняемое в цикле.
|