Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
ени файла.
   В документации на метод 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, как нетрудно догадаться из его названия, останавливает 
проигрывание звукового файла, как однократное, так и выполняемое в цикле.
   Приложение Audio
   Приложение Audio демонстрирует использование интерфейса AudioClip. В его 
окне (рис. 5.1) имеются три кнопки с названиями Play, Loop и Stop.

Рис. 5.1. Окно аплета Audio
   Сразу после запуска аплета кнопка Stop находится в заблокированном состоянии.
 Если нажать кнопку Play или Loop, начнется, соответственно, однократное 
проигрывание или проигрывание в цикле файла с именем kaas.au, распложенного в 
том же каталоге, что и двоичный файл аплета Audio.
   Когда начинается проигрывание звукового файла, кнопка Stop разблокируется, 
что позволяет остановить проигрывание.
   Исходные тексты приложения
   Основной файл исходных текстов приложения приведен в листинге 5.1.
Листинг 5.1. Файл Audio\ Audio.java
// =========================================================
// Проигрывание аудиофайла
//
// (C) Фролов А.В, 1997
//
// E-mail: [email protected]
// WWW:    http://www.glasnet.ru/~frolov
//            или
//         http://www.dials.ccas.ru/frolov
// =========================================================
import java.applet.*;
import java.awt.*;

public class Audio extends Applet
{
  // -------------------------------------------------------
  // Поля класса.
  // Создаются автоматически для всех параметров аплета
  // -------------------------------------------------------

  // Строка для хранения имени аудиофайла
  private String m_ClipName = "kaas.au";

  // -------------------------------------------------------
  // Имена параметров
  // -------------------------------------------------------

  // Строка имени параметра
  private final String PARAM_ClipName = "ClipName";

  // Аудиоклип
  AudioClip auClip;

  // Кнопка для однократного проигрывания
  Button btPlay;

  // Кнопка для проигрывания в цикле
  Button btLoop;

  // Кнопка для остановки проигрывания
  Button btStop;

  // Флаг проигрывания в цикле
  boolean fLoopPlay = false;

  // -------------------------------------------------------
  // getAppletInfo
  // Метод, возвращающей строку информации об аплете
  // -------------------------------------------------------
  public String getAppletInfo()
  {
    return "Name: Audio\r\n" +
      "Author: Alexandr Frolov\r\n" +
      "E-mail: [email protected]" +
      "WWW:    http://www.glasnet.ru/~frolov" +
      "Created with Microsoft Visual J++ Version 1.0";
  }

  // -------------------------------------------------------
  // getParameterInfo
  // Метод, возвращающий описание параметров
  // -------------------------------------------------------
  public String[][] getParameterInfo()
  {
    String[][] info =
    {
      { PARAM_ClipName, "String", "Audioclip filename" },
    };
    return info;    
  }

  // -------------------------------------------------------
  // init
  // Вызывается во время инициализации аплета
  // -------------------------------------------------------
  public void init()
  {
    // Рабочая переменная для получения параметров
    String param;

    // Получение параметров и сохранение
    // их значений в полях класса

    // Получение имени аудиофайла
    param = getParameter(PARAM_ClipName);
    if (param != null)
      m_ClipName = param;

    // Создаем кнопку для однократного проигрывания
    btPlay = new Button("Play");

    // Создаем кнопку для проигрывания в цикле
    btLoop = new Button("Loop");

    // Создаем кнопку для остановки проигрывания
    btStop = new Button("Stop");

    // Блокируем эту кнопку, так как пока еще
    // проигрывание не запущено
    btStop.disable();

    // Добавляем кнопки в окно а
 
<<-[Весь Текст]
Страница: из 275
 <<-