Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как сделать более эффективно, таймер сбивается хелп 
:(
    Опции темы
Muerto
Дата 30.12.2006, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



это класс в моем метрономе, который отвечает за сам клик.
но таймер не успивает =-((((
я пытался все из таймер а вытащить,но достаточно хоть одну строку убрать
например эту stream = AudioSystem.getAudioInputStream(file); поместить выше,и файл уже заного не играется=-(((
очень нужна помощь,спасибо заранее и с новым годом  smile 
Код
public class Play
{
  Timer timer;
  Clip clip;
  AudioInputStream stream;
  AudioFormat format;
  String file_name;
  File file;
  int s_volume;

  Play(int delay, int period, int soundkind, int sound_volume)
  {
    if(soundkind == 1)
      file = new File("Samples/Click1.wav");
    if(soundkind == 2)
      file = new File("Samples/Click2.wav");
    if(soundkind == 3)
      file = new File("Samples/Bass Drum.wav");
    if(soundkind == 4)
      file = new File("Samples/Crash.wav");
    if(soundkind == 5)
      file = new File("Samples/ShortCrash.wav");
    if(soundkind == 6)
      file = new File("Samples/Hi hat 1.wav");
    if(soundkind == 7)
      file = new File("Samples/Hi hat 2.wav");
    if(soundkind == 8)
      file = new File("Samples/Hi hat 3.wav");
    if(soundkind == 9)
      file = new File("Samples/Hi hat 4.wav");
    if(soundkind == 10)
      file = new File("Samples/Hi hat 5.wav");
    if(soundkind == 11)
      file = new File("Samples/Hi hat 6.wav");
    if(soundkind == 12)
      file = new File("Samples/Snare.wav");
    if(soundkind == 13)
      file = new File("Samples/Stick.wav");
    if(soundkind == 14)
      file = new File("Samples/Stick2.wav");
    if(soundkind == 15)
      file = new File("Samples/Tom.wav");
    final double value = sound_volume / 100.0;

    timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask()
    {
      public void run()
      {
        try
        {
          stream = AudioSystem.getAudioInputStream(file);
          format = stream.getFormat();
          stream = AudioSystem.getAudioInputStream(format, stream);
          // Create the clip
          DataLine.Info info = new DataLine.Info(Clip.class, stream.getFormat(), ((int) stream.getFrameLength() * format.getFrameSize()));

          clip = (Clip) AudioSystem.getLine(info);
          // This method does not return until the audio file is completely loaded
          clip.open(stream);
          FloatControl gainControl = (FloatControl) clip.getControl(FloatControl.Type.MASTER_GAIN);
          float dB = (float) (Math.log(value == 0.0 ? 0.0001 : value) / Math.log(10.0) * 20.0);
          gainControl.setValue(dB);
          System.out.println("gain control:" + gainControl + ",value=" + value);
          if(value > 0)
          {
            // Start playing
            clip.start();
          }
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
    }, delay, period);
  }

  public void stop()
  {
    timer.cancel();
  }
}

Добавлено @ 12:12 
и ещё не знаю как сделать что бы таймер работал определенное время,например 2 минуты.


--------------------
user posted image
PM MAIL   Вверх
LSD
Дата 30.12.2006, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



Как часто должен срабатывать таймер, и какова продолжительность клипа? Засеки сколько по времени будет выполняться метод run().


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Muerto
Дата 30.12.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



продалжительность клипа оч мала, ну мож 0.1 секунды.
таймер срабатывает так часто= как ему зададут! он получает с Ж слайдера значение, и через форумулу переводит это в мили секунды.
другими словами period= тэмп.

могу выложить всю программу...


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 30.12.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: нет
Всего: 4



Вот залил http://rapidshare.com/files/9510401/Metron...ushin_.rar.html
собственно прога в основном закончена, это мой проект на атестат...
осталось только  поправить пару багов, вид получше сделать и все.
пока самый большой баг это сбивание таймера,и я понимаю от чего, я его нагрузил.
но как разгрузить что бы сохранить ту же функциональность не знаю smile

Добавлено @ 14:38 
зы не жмите пока на плей два раза...


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.