forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   BlitzMax (http://forum.boolean.name/forumdisplay.php?f=104)
-   -   Звуковые каналы (звук в BlitzMax) (http://forum.boolean.name/showthread.php?t=20438)

edgemza 13.10.2016 19:09

Звуковые каналы (звук в BlitzMax)
 
Привет!
Запутался в организации звука в BlitzMax... Инструкций почти нет, а в английском я не настолько силен чтобы полностью всё понять.
Объясните, как организовывать звуковые каналы, как загружать зв.файлы и как ими управлять.
У меня есть след.конструкция:

Global MusicMain=LoadSound ("Sound\01_space debris(64).ogg",SOUND_LOOP)
Global sndTiraj=LoadSound ("Sound\dlya tiraja_sw111.wav",SOUND_LOOP)

Channel=AllocChannel()
TirajChannel=0
...
...
PlaySound MusicMain,Channel
...
...
If KeyDown(KEY_SPACE) Then
StopChannel Channel
BeginGame()
PlaySound MusicMain,Channel
EndIf
...
...
end

Function BeginGame()
PlaySound sndTiraj,TirajChannel
...
...
StopChannel TirajChannel '### в этом месте музыка не отключается и прога "вылетает"...
EndFunction


в метке ### музыка не отключается, а прога "вылетает"...

St_AnGer 13.10.2016 20:06

Ответ: Звуковые каналы (звук в BlitzMax)
 
Цитата:

Сообщение от edgemza (Сообщение 309215)
Channel=AllocChannel()
TirajChannel=0
...
Function BeginGame()
PlaySound sndTiraj,TirajChannel
...
...
StopChannel TirajChannel '### в этом месте музыка не отключается и прога "вылетает"...
EndFunction


в метке ### музыка не отключается, а прога "вылетает"...

я не знаток блиц макса, но мне кажется что TirajChannel не должно быть равно 0, а должно быть объявлено как AllocChannel(). От сюда и вылет на стопе - передаётся в функцию 0, а не нужный указатель.

edgemza 13.10.2016 21:03

Ответ: Звуковые каналы (звук в BlitzMax)
 
Да, скорее всего вы правы!
Я сейчас пошел по-другому:
1) Global TirajChannel '!!! кажется в этом была загвоздка (проигрывание вызывалась внутри функции, наверно была "не видна")
2) вместо AllocChannel() стал использовать CueSound(sndTiraj)
вроде бы всё заработало...
Но делал это не по-научному, а по-наитию...
Поэтому знатоков все-таки прошу подсказать - правильно это или нет!


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot