Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Воспроизведение муз. файлов формата ХМ, Пауза муз. файлов формата ХМ 
V
    Опции темы
Letion
  Дата 3.8.2010, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 19.8.2009

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



Здравствуйте, Уважаемые программисты! Я воспроизвожу муз.файлы формата *.хм в своей программе. Файлы грузятся из ресурсов. Вот код:
Код

 XMLoadFromRes('File1', 'XM');
 XMPlay;

Но не могу остановить данный файл, после окончания - он воспроизводится бесконечно.
Если ставлю команду XMStop,то файл сразу останавливается, не успев даже заиграть.
Как быть? Подскажите, пожалуйста, нужную команду! 
PM MAIL WWW   Вверх
Snowy
Дата 3.8.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 18
Всего: 484



MiniFMOD играет всегда по кругу.
Так что нужно самому ловить момент, когда останавливать.
Если размер мелодии известен заранее, то можно просто выждать нужное время и дать стоп.
Если не известен, то периодически проверяем результат XMGetRow.
По мере воспроизведения эта циферка растёт.
Как только она снова сбрасывается на 0 - значит пошли сначала - нужно стопорить.
PM MAIL   Вверх
Letion
Дата 3.8.2010, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 19.8.2009

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



Цитата(Snowy @ 3.8.2010,  11:54)
периодически проверяем результат XMGetRow.
По мере воспроизведения эта циферка растёт.
Как только она снова сбрасывается на 0 - значит пошли сначала - нужно стопорить.

То есть получается код примерного плана? Просто никогда не работал с XMGetRow:
Код

 XMLoadFromRes('File1', 'XM');
 XMPlay;
if XMGetRow = 0 then XMStop;

PM MAIL WWW   Вверх
Snowy
Дата 4.8.2010, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 18
Всего: 484



XMGetOrder возвращает номер воспроизводимой в данный момент страницы.
Как правило страницы идут по порядку, начиная с 0.
Пример, играем небольшой файлик. Так, из головы беру пример, что будет возвращать XMGetOrder:
0
1
2
3
4
3
4
5
6
0 - вот тут пошёл повтор - цепочка начинается заново
1

Код
var
  i, x: integer;
begin
  XMLoadFromRes('THEME', 'XM'); //загружаем мелодию из ресурса
  XMPlay; // запускаем воспроизведение
  i := -1;
  while i <> 0 do
  begin
    x := XMGetOrder; // текущая страница воспроизведения
    Sleep(100);
    if (x <> 0) or (i >= 0) then i := x; // i = x, если это не первая нулевая страница
  end;
  XMStop;

PM MAIL   Вверх
Letion
Дата 4.8.2010, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 19.8.2009

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



Спасибо! Попробую ближе к вечеру  smile 

Это сообщение отредактировал(а) Letion - 4.8.2010, 11:05
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




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


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

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