Сейчас на форуме: bartolomeo, hgdagon (+7 невидимых)

 eXeL@B —› Программирование —› Помогите проекту.
Посл.ответ Сообщение

Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 12 февраля 2006 21:30
· Личное сообщение · #1

Дорогие знатоки, помогите, никогда не работал с АПИ в программинге, и теперь думаю, что пришло время.

Вот хочу научиться делать фоновую музыку в проекте.

Использую АПИ ф-цию PlaySound. Делаю так:

В модуль Фтыкаю:

Option Explicit
Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszSoundName As String, ByVal hmod As Long, ByVal uFlags As Long) As Long
Public Const SND_ALIAS = &H10000
Public Const SND_ALIAS_ID = &H110000
Public Const SND_ALIAS_START = 0
Public Const SND_APPLICATION = &H80
Public Const SND_ASYNC = &H1
Public Const SND_FILENAME = &H20000
Public Const SND_LOOP = &H8
Public Const SND_MEMORY = &H4
Public Const SND_NODEFAULT = &H2
Public Const SND_NOSTOP = &H10
Public Const SND_NOWAIT = &H2000
Public Const SND_PURGE = &H40
Public Const SND_RESERVED = &HFF000000
Public Const SND_RESOURCE = &H40004
Public Const SND_SYNC = &H0
Public Const SND_TYPE_MASK = &H170007
Public Const SND_VALID = &H1F
Public Const SND_VALIDFLAGS = &H17201F

И затем вызываю ф-цию при хотя бы при загрузке формы:

Private Sub Form_Load()
Call PlaySound("Путь к файлу", 0&, SND_ASYNC Or SND_FILENAME)
End Sub

И при загрузке формы, она просто отказывается работать (ничего не происходит). Писал на VB 6.
Подскажите пожалуйста, что я не так делаю?



Ранг: 50.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 12 февраля 2006 22:14
· Личное сообщение · #2

Всё, верно, проверил - работает, по крайней мере, wav'ы проигрывает, mp3'шки и midi естественно звучать не будут.

Так что только wav, только wav.



Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 12 февраля 2006 22:23
· Личное сообщение · #3

IvanStepkin пишет:
Так что только wav, только wav.


Слушай, а что мне сделать, что бы мп3-шники и мидяшки проигрывать? Может ещё есть какая-то ф-ция? Или может ещё что?

Ведь, ты сам понимаешь, сколько весят вавы, и в прогу их толком не воткнёшь... Потому, что тогда одни ресурсы будут весить больше самой проги (крякми, кейгена etc.). Вроде всё должно быть как положено. Помоги, давно парился над этой ф-цией, но... подскажи что-нибудь ещё плз.




Ранг: 70.5 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 12 февраля 2006 23:00
· Личное сообщение · #4

SeQuick
Качай uFMOD 1.08 там и примерчики использования есть
Будут тебе и мидяшки и it и mod .
А для мп3 там код посложнее будет.




Ранг: 122.3 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 12 февраля 2006 23:01 · Поправил: intty
· Личное сообщение · #5

вавы круто жмутся раром. сожми их в рар и инклудь ресурсом в файл. потом будешь распаковывать в темп и проигрывать.

ну или попробуй - "uFMOD by Quantum & Asterix"
"Библиотека uFMOD распространяется с открытым исходным кодом и примерами для MASM32, FASM, Visual C++ и Visual Basic 6."

хорошо начинаешь. удачи проэкту..

[added]
6aHguT опередил )



Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 13 февраля 2006 02:36
· Личное сообщение · #6

6aHguT пишет:
Качай uFMOD 1.08 там и примерчики использования есть
Будут тебе и мидяшки и it и mod .
А для мп3 там код посложнее будет.


intty пишет:
ну или попробуй - "uFMOD by Quantum & Asterix"


Ребят, поймите, я же не профи, я только буквально 2 дня апи учу, я ещё толком ничё не знаю...
Вся проблема состоит в том, что я реально ньюб, и подобные тексты меня просто ошарашивают... Мне надо именно конкретный код по мп3 и миди. У меня есть проекты, в которых вышеперечисленное делается ВСЁ но только там по-любому больше пол-проекта левого текста... Я никак не могу разобраться что к чему.. Просто объясните, с помощью чего проигрываются мп3 и миди и ФСЁ для меня пока что апи это густой лес =) Так что, помилуйте моё время и умственную массу... Если захотите взглянуть на те проекты, напишите, я выложу их в следующем сообщении. Начать это всегда мона, но я не думаю, что начинать надо с разгребания босявого кода, где куча непонятных для меня комманд =))




Ранг: 230.5 (наставник)
Активность: 0.180
Статус: Участник
Norg

Создано: 13 февраля 2006 13:04
· Личное сообщение · #7

проигрывание миди на дельфи SeQuick напиши мне на мыло я тебе подробно напишу как играть мод
denisdi2собакаhotmail.ru тока я тебе для дельфи могу и асма написать.Си не люблю.
uses
MMSystem;подключаем необходимое

// Play Midi

procedure TForm1.Button1Click;
const
FileName = 'C:\YourFile.mid';//путь до миди
begin
MCISendString(PChar('play ' + FileName), nil, 0, 0);
end;

// Stop Midi

procedure TForm1.Button1Click;
const
FileName = 'C:\YourFile.mid';
begin
MCISendString(PChar('stop ' + FileName), nil, 0, 0);
end;

-----
M&#225 enginn renna undan &#254v&#237 sem honum er skapa&#240





Ранг: 230.5 (наставник)
Активность: 0.180
Статус: Участник
Norg

Создано: 13 февраля 2006 13:08
· Личное сообщение · #8

Хотя вот на СИ попробовал
char szBuf[MAX_PATH]; mciSendString((LPSTR)"open C:\\1.mid type sequencer alias snd wait",
(LPSTR)szBuf, 256, NULL);
mciSendString((LPSTR)"play snd wait", (LPSTR)szBuf, 256, NULL);
mciSendString((LPSTR)"close snd", (LPSTR)szBuf, 256, NULL);
А все таки пиши на мыло я люблю новичкам подробно обьяснять,даже видео тутор сделаю если хочешь.

-----
M&#225 enginn renna undan &#254v&#237 sem honum er skapa&#240




Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 14 февраля 2006 16:46
· Личное сообщение · #9

di-2 пишет:
проигрывание миди на дельфи SeQuick напиши мне на мыло я тебе подробно напишу как играть мод


Да зачем я не пойму мне на дельфи-то? Я же пишу на Visual Basic... Дельфи я знаю, но плохо... Если есть у тя такая возможность, то напиши лучше, как это сотворить на VB (6).




Ранг: 230.5 (наставник)
Активность: 0.180
Статус: Участник
Norg

Создано: 14 февраля 2006 18:40
· Личное сообщение · #10

Option Explicit

'Это объявление нужных флагов
Private Enum PartialPlaySoundFlags
SND_SYNC = 0
SND_FILENAME = 131072
End Enum

'Экспортируем функцию PlaySound из winmm.lib
Private Declare Function PlaySound Lib "winmm.dll" ( _
ByVal wavName As String, ByVal hModule As Long, _
ByVal flags As Long) As Boolean

Private Sub Form_Click()
Dim i As Integer

For i = 1 To 5
PlaySound "c:/temp/1.wav", 0, SND_SYNC Or SND_FILENAME
DoEvents
Next i

End Sub

-----
M&#225 enginn renna undan &#254v&#237 sem honum er skapa&#240




Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 14 февраля 2006 19:40
· Личное сообщение · #11

di-2 пишет:
Option Explicit

'Это объявление нужных флагов
Private Enum PartialPlaySoundFlags
SND_SYNC = 0
SND_FILENAME = 131072
End Enum

'Экспортируем функцию PlaySound из winmm.lib
Private Declare Function PlaySound Lib "winmm.dll" ( _
ByVal wavName As String, ByVal hModule As Long, _
ByVal flags As Long) As Boolean

Private Sub Form_Click()
Dim i As Integer

For i = 1 To 5
PlaySound "c:/temp/1.wav", 0, SND_SYNC Or SND_FILENAME
DoEvents
Next i

End Sub


Ну я же просил, МИДИ, а ты пишешь ВАВ. ВАВЫ я-то могу проигрывать (смотри первое сообщение этого топа). а вот скажи ЧТО_нить про миди.



Ранг: 50.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 14 февраля 2006 22:34
· Личное сообщение · #12

Dim MC As IMediaControl

Private Sub Form_Load()
SNDLoadFile "wav'ы midi и mp3'шки"
End Sub

Sub SNDLoadFile(ByVal strFileName As String)
Set MC = New FilgraphManager
MC.RenderFile strFileName
MC.Run
'MC.Stop - ясно наверное, что это делает
End Sub

PS: подключи к проекту ActiveMovie control type library с помощью Project -> References...
и наслаждайся музыкой в проекте



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 15 февраля 2006 12:23
· Личное сообщение · #13

SeQuick, это что, VB?
Если вызывать PlaySound с такими параметрами, то будет играть прямо из памяти без распаковки на диск (пишу попроще и подробнее):

PlaySound(
указатель на область памяти с саундом,
нолик,
SND_MEMORY or SND_NOWAIT or SND_SYNC *
)
*обязательно такие флаги


[offtop] Юзаю Оперу 7.5... почему-то кнопочки смайликов перестали работать ( Из скриптов работает только вставка цитат[/offtop]

Вообще, MciSendString лучше, но имхо рано пока ещё.. 2 дня-то всего.. Читайте MSDN и SDK

-----
Я медленно снимаю с неё UPX... *FF_User*




Ранг: 50.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 19 февраля 2006 09:30
· Личное сообщение · #14

Ну, где автор то? Уже пять дней жду, что скажет насчёт моего предложения кода!!!



Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 19 февраля 2006 19:39
· Личное сообщение · #15

IvanStepkin пишет:
Ну, где автор то? Уже пять дней жду, что скажет насчёт моего предложения кода!!!


Да блин... Автор-то тут, но я никак не могу разобраться, что за контрол! Я с таким никогда не имел дело... Фигня в том, что во-первых, у меня визуалка русская, и я что-то не могу найти этот контрол... В принципе все контроллы на англиЦком, но такого я что-то не нашёл! Поскажи что в твоих силах, как можно ближе, где найти такой? =)



Ранг: 50.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 20 февраля 2006 13:35
· Личное сообщение · #16

Прикрепляю пару скриншотов, должно помочь разобраться.
Эта библиотека DirectShow от DirectX, если есть DX, то и она должна быть. Проверь начилие файла контрола.

93bd_VB_1.rar.zip



Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 20 февраля 2006 18:59
· Личное сообщение · #17

У тебя наверное 5-я визуалка... а у меня 6-я.... В аттаче смотри, что у меня в компонентах...

7f52_%D1%EA%F0%E8%ED.rar.zip



Ранг: 50.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 20 февраля 2006 20:51
· Личное сообщение · #18

У меня пятая версия??? Ты что смеёшься надо мной!!!

Какой смысл в твоём скриншоте, у каждого пользователя может быть свой уникальный набор.

А вот в моём скриншоте смотри файл котрола, есть ли он у тебя.



Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 21 февраля 2006 03:57
· Личное сообщение · #19

СПАСИБО ОГРОМНОЕ!!! Я понял, что я не так делал... блин, только ты дал вразумительный ответ на этот вопрос! Всё работает как часики! Пасиб!

P.S. Тему можно закрывать.



Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 21 февраля 2006 03:57
· Личное сообщение · #20

СПАСИБО ОГРОМНОЕ!!! Я понял, что я не так делал... блин, только ты дал вразумительный ответ на этот вопрос! Всё работает как часики! Пасиб!

P.S. Тему можно закрывать.



Ранг: 50.6 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 21 февраля 2006 21:23
· Личное сообщение · #21

Да, тема исчерпана.

PS: просто хотел сказать, как все любят VB, взгляните сколько просмотров у этой темы (больше всех в этом подфоруме 675 на 02.21 21:22)



Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 21 февраля 2006 22:13
· Личное сообщение · #22

Блин... тут ещё вопросик в догонку... Как зациклить проигрывание музыки, то есть как сделать, что бы когда музыка кончилась, она начинала играть заново?




Ранг: 111.1 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 01 марта 2006 00:10
· Личное сообщение · #23

Для xm, mod, it можно использовать bassmod.dll. Пример использования - где - то в сети (Google рулит )

-----
The truth is out of there...





Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 23 марта 2006 22:51
· Личное сообщение · #24

А тут у меня родился вопросик! А реально проиграть музыку не вытаскивая её из ресурсов!
Над этой темой я дофига парился и решил забить на всё это дело
Мож кто-нибудь из вас знает как это осуществить
Заранее ОЧЕНЬ благодарен!

ЗЫ: Давно на этот раздел форума не вылазил, поэтому такая задержка...

-----
Research For Food




Ранг: 47.4 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 24 марта 2006 03:37
· Личное сообщение · #25

daFix пишет:
А тут у меня родился вопросик! А реально проиграть музыку не вытаскивая её из ресурсов!
Над этой темой я дофига парился и решил забить на всё это дело
Мож кто-нибудь из вас знает как это осуществить
Заранее ОЧЕНЬ благодарен!


На данном этапе развития программирования данное действие не представаляется возможным! Как ты себе это представляешь?



Ранг: 25.0 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 09 апреля 2006 18:48
· Личное сообщение · #26

SeQuick
Можеш готовую либу MMF Player юзать.

447e_09.04.2006_CRACKLAB.rU.tgz



Ранг: 79.4 (постоянный)
Активность: 0.090
Статус: Участник

Создано: 09 апреля 2006 19:27
· Личное сообщение · #27

daFix пишет:
А тут у меня родился вопросик! А реально проиграть музыку не вытаскивая её из ресурсов!
Над этой темой я дофига парился и решил забить на всё это дело
Мож кто-нибудь из вас знает как это осуществить


реально и ещё как реально! для этого и написали uFMOD, правдя только для ХМ формата!
но сдругой стороны я не вижу смысла запихивать в ресурсы вавы и мп3-шки... имхо это не красиво



Ранг: 36.9 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 09 апреля 2006 20:28 · Поправил: Dark_Phoenix
· Личное сообщение · #28

если хочешь играть все. Юзай FMOD или BASS
там есть для бэейсика.
А вообще лучше заюзай контроль Windows Media Player'a.
Хотя имхо Vbasic фтопку.
Я дельфист юзаю minifmod.
Там спец ф-ция XMplayFromRes()
не знаю есть ли это добро под бэйсик.
в FMOD точно есть даже пример для бейсика (fmod.org)



Ранг: 79.4 (постоянный)
Активность: 0.090
Статус: Участник

Создано: 09 апреля 2006 20:50
· Личное сообщение · #29

Dark_Phoenix пишет:
не знаю есть ли это добро под бэйсик.
в FMOD точно есть даже пример для бейсика (fmod.org)

для васика тож есть примеры, нуно просто скачать архифф с офф. сайта...
там между прочим и для дельфина примеры имеюцца...
к томуж он компактен и прикомпиливается прямо к проекту без лишних длл-лок...
качать сдесь: ufmod.sourceforge.net/


 eXeL@B —› Программирование —› Помогите проекту.
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати