Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 21.07.2008, 15:23   #1
Maxim1441
Нуждающийся
 
Регистрация: 09.07.2008
Сообщений: 57
Написано 11 полезных сообщений
(для 26 пользователей)
Проблема с музыкой

В общем, использую музыку в *.MID через PlayMusic

Примерно вот так:

function PlMus()
select RND(1,2)
case 1
ChanMus=PlayMusic("Sound1.mid")
case 2
ChanMus=PlayMusic("Sound2.mid")
end select
end function

В цикле:

If ChannelPlaying(ChanMus)=0 Then PlMus()

Т.е., по уму, если в Цикле музыка уже (или еще) не проигрывается, то переходим в ф-цию, устанавливаем случ. композицию и все. А пока она играет, ChannelPlaying=1 и в Цикле она ее не вызывает. Но проблема в том, что музыка играет, но все жутко начинает тормозить. Все из-за ChannelPlaying, когда я просто в начале проги запускал PlayMusic, то ничего не тормозило. Может кто знает, где я не прав?

Последний раз редактировалось Maxim1441, 21.07.2008 в 15:29.
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 15:35   #2
jimon
 
Сообщений: n/a
Ответ: Проблема с музыкой

читаем справку к PlayMusic :

You can't 'preload' the audio like you can a sound sample via the LoadSound command. Every time you call the PlayMusic command, the file is reloaded and played. This means that if you use the command while some graphics are moving on-screen, you may get a slight pause when the hard drive seeks and grabs the music file. To avoid this, you might want to use the PlaySound/LoopSound commands instead.
тоесть когда команда вызывается то она загружает файл в память что может вызвать тормоза
в коде ChanMus глобальная переменная ?
 
Ответить с цитированием
Старый 21.07.2008, 15:36   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проблема с музыкой

Привет! Проверяй раз в несколько секунд. Или испоьзуй не midi музыку.
if millisecs() > a+2000
a = millisecs()
If ChannelPlaying(ChanMus)=0 Then PlMus()
endif
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 15:38   #4
Maxim1441
Нуждающийся
 
Регистрация: 09.07.2008
Сообщений: 57
Написано 11 полезных сообщений
(для 26 пользователей)
Сообщение от jimon Посмотреть сообщение
читаем справку к PlayMusic :
тоесть когда команда вызывается то она загружает файл в память что может вызвать тормоза в коде ChanMus глобальная переменная ?

Справку я читал, но не в этом дело потому что если я вне цикла ставлю PlayMusic, то ничего не тормозит, да и не может тормозить компьютер загрузка позорного 20 Кб файла - это гон. В справке явно имели ввиду MP3 или там WAV. Переменая глобальная, конечно. Я думаю, может ChannelPlaying сам по себе тормозной, и когда он в цикле каждый раз проверяет, проигрывается или нет музыка, то из-за него и тормозит, хотя это вряд ли.

Сообщение от HolyDel Посмотреть сообщение
Привет! Проверяй раз в несколько секунд. Или испоьзуй не midi музыку.
if millisecs() > a+2000
a = millisecs()
If ChannelPlaying(ChanMus)=0 Then PlMus()
endif

Спасибо, конечно, но все-равно тормозит.

Последний раз редактировалось jimon, 21.07.2008 в 21:53.
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 16:08   #5
jimon
 
Сообщений: n/a
Ответ: Проблема с музыкой

Maxim1441
попробуй заменить командами PlaySound\LoadSound
и загружать музыку до начала цикла

скорее всего midi как-то хитро грузится вот и тормозит :/
 
Ответить с цитированием
Старый 21.07.2008, 16:24   #6
Maxim1441
Нуждающийся
 
Регистрация: 09.07.2008
Сообщений: 57
Написано 11 полезных сообщений
(для 26 пользователей)
Ответ: Проблема с музыкой

Сообщение от jimon Посмотреть сообщение
попробуй заменить командами PlaySound\LoadSound
и загружать музыку до начала цикла
/
А все-равно для того, чтобы менять треки, придется пользоваться
ChannelPlaying, и тормозить будет также.
Сообщение от jimon Посмотреть сообщение
скорее всего midi как-то хитро грузится вот и тормозит :/
Да это вряд ли. Если без ChannelPlaying, вне цикла ставить PlayMusic, то все замечательно. Я уже подумал, чтобы в каком-нибудь редакторе слить все эти миди в один фпайла и загружать его в начале.
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 16:30   #7
jimon
 
Сообщений: n/a
Ответ: Проблема с музыкой

Maxim1441
ты ищешь решения ? я тебе сказал куда копать
удостоверся что тормозит именно ChannelPlaying :

ms% = Millisecs()
ChannelPlaying(ChanMus)
debuglog (Millisecs()-ms)
если в дебаг будет выводится больше 0 (числа 30-40) значит она тормозит и откажись от неё

таким же способом замерь сколько времени занимает PlayMusic перед началом цикла
msp% = Millisecs()
PlayMusic("Sound1.mid")
debuglog (Millisecs()-msp)
 
Ответить с цитированием
Старый 21.07.2008, 16:40   #8
Maxim1441
Нуждающийся
 
Регистрация: 09.07.2008
Сообщений: 57
Написано 11 полезных сообщений
(для 26 пользователей)
Ответ: Проблема с музыкой

Ты знаешь, сейчас загрузил вне цикла здоровую midi, так она без всяких ChannelPlaying тормозит, так что, видимо - midi и Blitz3D - несовместимы ;-). Придется делать MP3, жаль, хотел сэкономить место.
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 16:43   #9
jimon
 
Сообщений: n/a
Ответ: Проблема с музыкой

были библиотеки для проигрывания схожих форматов
поищи, может чего найдешь менее тормозного
 
Ответить с цитированием
Старый 21.07.2008, 16:51   #10
Maxim1441
Нуждающийся
 
Регистрация: 09.07.2008
Сообщений: 57
Написано 11 полезных сообщений
(для 26 пользователей)
Ответ: Проблема с музыкой

Сообщение от jimon Посмотреть сообщение
были библиотеки для проигрывания схожих форматов
Неа, нехочу библиотек. Если в Справке написано, что можно проигрывать MIDI, значит, д.б. способ. Кстати, нашел такой глюк, если вне цикла писать

PlayMusic ("sfx\S.mid")

то все работает без тормозов, а стоит написать так

ChanSum=PlayMusic ("sfx\S.mid")

то сразу все тормозит ужасно, причем нигде у меня ChanSum не используется. Так вот.
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 20:43   #11
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Ответ: Проблема с музыкой

так у тебя в цикле PlayMusic?
__________________
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 21:25   #12
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проблема с музыкой

судя по первому посту - все у него нормально
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 21:39   #13
Maxim1441
Нуждающийся
 
Регистрация: 09.07.2008
Сообщений: 57
Написано 11 полезных сообщений
(для 26 пользователей)
Сообщение от dimanche13 Посмотреть сообщение
так у тебя в цикле PlayMusic?
Нет. В цикле у меня проверяется, играет ли музыка функцией ChannelPlayning().

Сообщение от HolyDel Посмотреть сообщение
судя по первому посту - все у него нормально
Да. У меня все нормально, только ничего не работает. . Даже не знаю, что делать. Получается, Блитц работает с миди, только если не присаивать Плайсаунд имени канала, а это ужас, т.к. нельзя проверить, проигрывается ли музыка, даже громкость не изменить.

Последний раз редактировалось jimon, 21.07.2008 в 21:53.
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 21:44   #14
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Проблема с музыкой

Maxim1441, используй xm музыку. весит немного.
(Offline)
 
Ответить с цитированием
Старый 21.07.2008, 22:03   #15
Maxim1441
Нуждающийся
 
Регистрация: 09.07.2008
Сообщений: 57
Написано 11 полезных сообщений
(для 26 пользователей)
Ответ: Проблема с музыкой

Сообщение от HolyDel Посмотреть сообщение
Maxim1441, используй xm музыку. весит немного.
Первый раз о таком формате слышу, но в справке написано, что только PlayMusic можно этот формат проигрывать, поэтому, думаю, глючить будет так же. Или нет? И можно ли, и если можно, то каким софтом, переконвертировать MIDI в XM?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с С++ HAMANN C++ 10 24.12.2009 09:31
Проблема rr333 3D Моделирование 10 07.06.2009 17:08
Проблема в MP Nautilus MidletPascal 4 26.10.2008 05:30
Проблема с MP3 и EAX Maxim1441 2D-программирование 3 29.07.2008 18:29
проблема с ode jimon 3D-программирование 0 24.09.2005 17:20


Часовой пояс GMT +4, время: 14:28.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com